Ошибка: "System.IndexOutOfRangeException" Index was outside the bounds of the array

Объявил массив с заранее введёнными пользователем данными:

string[][] data = new string[3][];
data[1] = new string[3] {imya, familia, otchestvo};
data[2] = new string [1] {email};
data[3] = new string [1] {login};

Потом начал выводить данные в строку:

foreach (var i in data)
            {
                foreach(var s in i)
                {
                    Console.WriteLine("Проверьте введённые данные: " + s);
                }
            }

В компиляторе на этом этапе выдаёт данную ошибку:

"System.IndexOutOfRangeException" Index was outside the bounds of the array

Может надо объявить int, а потом преобразовать в строку?


Ответы (1 шт):

Автор решения: aepot

Индексы в массивах начинаются с 0, а не с 1. Научитесь отличать ошибки компилятора от ошибок времени выполнения. У вас ошибка возникает не при компиляции.

string[][] data = new string[3][];
data[0] = new string[3] { imya, familia, otchestvo };
data[1] = new string[1] { email };
data[2] = new string[1] { login };
foreach (string[] item in data)
{
    Console.WriteLine("Проверьте введённые данные: " + string.Join(" ", item));
}
→ Ссылка