Ответ
IndexOutOfRangeException — это исключение времени выполнения, которое возникает при попытке доступа к элементу массива или коллекции (например, List<T>) по индексу, который находится вне допустимого диапазона. Это происходит, если индекс отрицательный или больше либо равен размеру коллекции.
Пример возникновения:
int[] numbers = { 1, 2, 3 };
int invalidValue = numbers[5]; // Выбросит IndexOutOfRangeException
Как предотвратить:
- Проверка границ вручную: Всегда проверяйте индекс перед доступом, особенно если он вычисляется динамически.
if (index >= 0 && index < array.Length) { var item = array[index]; // Безопасный доступ } - Использование
foreach: Для простого перебора элементов предпочтительнее циклforeach, который исключает ошибки с индексами.foreach (var number in numbers) { Console.WriteLine(number); } - Использование безопасных методов: Для коллекций типа
List<T>можно использовать методыElementAtOrDefault()(из LINQ) или проверять свойствоCount/Length.
Почему это важно: Обработка этого исключения критична для стабильности приложения, так как неконтролируемый доступ к памяти может привести к его аварийному завершению.