Метод удаления не удаляется

1

Я создаю программу, которая содержит три массива: один для фамилии человека, один для очков и один для номера игрока. Теперь я получил все массивы и все, но по какой-то причине мой метод удаления метода выиграл ' t удалите элементы из массивов. Я знаю, что задал вопрос, подобный этому, но я не могу понять, почему он не будет удаляться должным образом

Любая помощь будет оценена пожалуйста и спасибо

static Int32[] ProcessDelete(Int32[] playerNumbers, ref Int32 playerCount, 
    String[] playerLastName, Int32[] playerPoints )
{
    Int32[] newArray = new Int32[playerNumbers.Length - 1]; 
    String[] newArray2 = new String[playerLastName.Length - 1]; 
    Int32[] newArray3 = new Int32[playerPoints.Length - 1];

    int index = 0;
    int index2 = 0;
    int index3 = 0;
    int j = 0;
    int k = 0;
    int t = 0;

    while (index < playerNumbers.Length)
    {
        if (index != playerCount)
        {
            newArray[j] = playerNumbers[index];
            j++;
        }

        index++;
    }

    while (index2 < playerLastName.Length)
    {
        if (index2 != playerCount)
        {
            newArray2[k] = playerLastName[index2];
            k++;
        }

        index2++;
    }

    while (index3 < playerLastName.Length)
    {
        if (index3 != playerCount)
        {
            newArray3[t] = playerPoints[index3];
            t++;
        }

        index3++;
    }

    return newArray;          
}

static void DeletePlayer(Int32[] playerNumbers, String[] playerLastName, 
    Int32[] playerPoints, ref Int32 playerCount, Int32 MAXPLAYERS)
{
    int player; // Player number to delete
    int playerindex;//index of the player number in Array

    if (playerCount < MAXPLAYERS)
    {
        player = 
            GetPositiveInteger("\nDelete Player: please enter the player number");
        playerindex = GetPlayerIndex(player, playerNumbers, playerCount);

        if (playerindex != -1)
        {
            Console.WriteLine(
                "\nDelete Player: Number - {0}, Name - {1}, Points - {2}",
                playerNumbers[playerindex], playerLastName[playerindex], 
                playerPoints[playerindex]);

            Console.WriteLine("Succesfully Deleted");
            Console.WriteLine();
            ProcessDelete(playerNumbers, ref playerCount, playerLastName, 
                playerPoints);
        }
        else
        {
            Console.WriteLine("\nDelete Player: player not found");
        }
    }
    else
    {
        Console.WriteLine("\nDelete Player: the roster is empty");
    }            
}
  • 0
    ты отладил свой код
  • 0
    я не вижу операции удаления на массивах
Показать ещё 2 комментария
Теги:

1 ответ

4
Лучший ответ

Метод ProcessDelete новые массивы newArray, newArray2 и newArray3. Из них он возвращает только newArray, поэтому newArray2 и newArray3 выбрасываются. Когда DeletePlayer вызывает ProcessDelete, он игнорирует возвращаемое значение, поэтому newArray также отбрасывается, и вся работа, выполняемая в теле ProcessDelete, теряется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню