#c# #arrays #indexing #reverse
#c# #массивы #индексирование #обратный
Вопрос:
Я получаю, что индекс выходит за пределы в строках 33 и 46. Почему это? Я пытаюсь изменить массив на противоположный. Я знаю, что означает код ошибки, но я не знаю, почему я его получаю. Строка 33 — строка reversed = reverseArray(обработка); Строка 46 — возврат reverseCraft[5];
//make an array to be reversed
string[] craftArray = new string[5] { "Iron", "Stone", "Copper", "Steel", "Clay" };
//create a variable to hold return value
string[] crafting = new string[5];
//function call the ReverseCraft method
string reversed = ReverseArray(crafting);
//Report the calculation to the user
Console.Write("The array reversed is" reversed);
}
public static string ReverseArray(string[] craft)
{
//create a variable and reverse
string[] reverseCraft = new string[5] { craft[4], craft[3], craft[2], craft[1], craft[0] };
//return value
return reverseCraft[5];
}
}
}
Комментарии:
1.
reverseCraft[5]
должно быть[4]
. Поскольку массивы основаны на нуле.2. Количество ваших строк также выходит за рамки
3. Метод reverseArray должен возвращать массив строк, а не строку.
4. Не отвечает на ваш вопрос, но в будущем я бы сначала использовал Array. Обратный (). Если вы собираетесь написать функцию для выполнения чего-то подобного, я бы рекомендовал использовать цикл for с проверками границ..
Ответ №1:
Ваш обратный метод имеет неправильную подпись. Он должен возвращать string[]
, вот так:
public static string[] ReverseArray(string[] craft) {
//create a variable and reverse
string[] reverseCraft = new string[5] { craft[4], craft[3], craft[2], craft[1], craft[0] };
//return value
return reverseCraft;
}
С этим кодом все, что вам нужно сделать, это правильно распечатать результат:
string[] reversed = ReverseArray(crafting);
//Report the calculation to the user
Console.Write("The array reversed is " string.Join(", ", reversed));
Комментарии:
1. Хорошо, спасибо. Есть ли другой способ сделать это вместо использования string.join?
2. @Xoax Да, вы можете написать цикл.
Ответ №2:
Это выдает ошибку в строке
верните reverseCraft[5];
потому что нет обратного хода [5].
Первым элементом reverseCraft является reverseCraft[0], а последним элементом является reverseCraft [4].
Комментарии:
1. Исправлена эта часть. Спасибо