Codeby.net совместно с PHDays 8

Объявляют о проведении грандиозного конкурса с умопомрачительными призами ! Получи бесплатно билет на PHDays 8, деньги, футболку с символикой codeby, а так же всеобщий респект и уважение. Подробнее ...

Исключение: Index was out of range

Очень часто при работе с массивами или коллекциями можно столкнуться с исключением: Index was out of range. В чём заключается суть ошибки.

Представьте, что у Вас есть массив, состоящий из двух элементов, например:

Особенность массивов в языке c# заключается в том, что начальный индекс элемента всегда равен нулю. То есть в данном примере, не смотря на то, что число пять — это первое значение элемента массива, при обращении к нему потребуется указать индекс ноль. Так же и для числа семь, несмотря на то, что это число является вторым элементом массива, его индекс так же будет на единицу меньше, то есть, равен одному.

5 7
0 1

Обращение к элементам массива:

Результат: a = 5 и b = 7.

Но, стоит только указать неверный индекс, например:

В результате получаем исключение: Index was outside the bounds of the array, то есть индекс находиться за границами диапазона, который в данном примере составляет от 0 до 1. Поэтому при возникновении данной ошибки, первое, что нужно сделать, так это убедиться в том, что Вы указали правильный индекс при обращении к элементу массива или обобщённой коллекции.

Exception


Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

Так же данная ошибка очень часто встречается в циклах, особенно в цикле for, если Вы указываете неверное количество элементов содержащихся в массиве, например:

В результате так же возникает ArgumentOutOfRangeException, так как количество элементов равно двум, а не трём. Поэтому лучше всего в циклах использовать уже готовые методы для подсчёта количества элементов массива или коллекций, например:

для массива

для коллекции

Говоря про циклы нельзя не упомянуть ещё одну ошибку, которая очень часто встречается у многих начинающих программистов. Представим, что у нас есть две коллекции и нам нужно заполнить список var2 значениями из первого списка.

Не смотря на то, что вроде бы все указано, верно, в результате выполнения кода, уже на самом первом шаге цикла, будет выдано исключение: Index was out of range. Это связано с тем, что для заполнения коллекции var2 требуется использовать не индекс, а метод Add.

Если же Вы хотите отловить данное исключение, в ходе выполнения программы, то для этого достаточно воспользоваться блоками try catch, например:

Читайте также:


Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

Похожие темы

Как изменить файл манифест Как изменить данные в файле манифест В этой заметке описано два простых способа, с помощью которых можно изменить данные в файле манифест. Файл ма...
Как можно быстро получить все буквы русского или а... Как можно быстро получить все буквы русского или английского алфавита? Просматривая исходник одной из программ, увидел следующую строку: Как видно...
Как изменить код программы без исходника... Как изменить код программы, если потерян исходник Бывают ситуации, когда под рукой нет исходника, а Вам срочно требуется внести изменения в коде, нап...
Как программно получить путь к папке... Как программно получить путь к папке В этой статье хотелось бы рассказать о способе, который позволяет программно получить путь к открытой в данный м...
Деление чисел на ноль в языке c#... Деление на ноль типов с плавающей точкой в языке c# В очередной раз, наткнувшись на видеоурок, в котором создается калькулятор, я обратил внимание на...