Продолжайте получать «System.ArgumentException», когда количество массивов даже не - PullRequest
0 голосов
/ 22 мая 2019

Я получаю сообщение об ошибке:

Смещение и длина вышли за пределы массива или число превышает число элементов от индекса до конца исходной коллекции

Когда количество элементов массива даже не равно directions.RemoveRange(i, 2);

public static string[] way(String[] arr)
{
    int[] secondaryArr = new int[arr.Length];

    for (int j = 0; j < arr.Length; j++)
    {
        switch (arr[j])
        {
            case "NORTH":
                secondaryArr[j] = 1;
                break;
            case "SOUTH":
                secondaryArr[j] = -1;
                break;
            case "WEST":
                secondaryArr[j] = 2;
                break;
            case "EAST":
                secondaryArr[j] = -2;
                break;
        }
    }

    var directions = arr.ToList();

    for (int i = 0; i < directions.Count / 2; i++)
    {
        for (int j = 0; j < secondaryArr.Length - 1; j++)
        {
            if (secondaryArr[j] + secondaryArr[j + 1] == 0)
            {
                directions.RemoveRange(i, 2);
                i = 0;
                j = 0;
            }
        }
    }

    arr = directions.ToArray();
    return arr;
}

Мне нужно уменьшить направления, когда маршрут не является разумным.Например, когда я получаю ввод, такой как: [NORTH],[SOUTH],[WEST], он должен быть уменьшен до: [WEST], потому что идти NORTH и SOUTH нецелесообразно.Проблема в том, что я застреваю при сортировке массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...