Я получаю странный Индекс вне диапазона Исключение.C# IndexOutOfRangeException необъяснимый
Вот мой фрагмент кода:
string[] st2 = **An Array of up to 10**;
// If not enough in st2, add from st
if (st2.Length < 10)
{
string[] st = **An Array of up to 10**;
try
{
int index = 0;
for (int i = st2.Length - 1; i < 10; i++)
{
st2[i] = st[index];
index = index + 1;
}%%%
}
catch (IndexOutOfRangeException)
{
}
}
Я поставил попытаться поймать, чтобы увидеть, если я мог бы просто игнорировать исключение, однако, что не работает.
Исключение составляет %%%. Есть идеи? Я пошел в отладку только для того, чтобы убедиться, что это не один из массивов, и в обоих случаях i и индекс оба приемлемы. (выбрасывается при индексе = 1, хотя st подтверждается 10 в длину)
Вы пытались очистить решение и перезапустить Visual Studio? ' –
Почему бы не 'for (int i = 0; i
Tim
Цикл будет получать доступ к 'st2 [st2.length]' на своей итерации execond, которая не поддается окончанию. Вы не можете увеличить .net-массивы, назначив неиспользуемые индексы. – CodesInChaos