Что не так с моим циклом, из-за которого индекс выходит за пределы диапазона [дубликат]C#

Место общения программистов C#
Anonymous
Что не так с моим циклом, из-за которого индекс выходит за пределы диапазона [дубликат]

Сообщение Anonymous »

Я работаю над массивом и на самом деле новичок. Быстрый вопрос: я установил int i < длину массива. Но понятия не имею, почему отображается следующая ошибка.
'Индекс вышел за пределы допустимого диапазона. Должно быть неотрицательным и меньше размера коллекции.
Это отображается на
if (score == noDuplicate[2])

Может кто-нибудь посоветовать?
public string Prize(string input)
{
int[] score = input.Split(',').Select(s => int.Parse(s)).ToArray();
Array.Sort(score);
int[] descScore = score.Reverse().ToArray();
string message = "";
int howManyThird = 0;
List noDuplicate = new List();
int[] newSort = new int[] { };
if (descScore.Length < 3) message = "NOT VALID";
else
{
for (int i = 0; i < descScore.Length; i++)
{
if (i == descScore.Length - 1)
{
if (descScore != descScore)
{
noDuplicate.Add(descScore);
}
else break;
}
else if (descScore != descScore[i + 1])
{
noDuplicate.Add(descScore);
}
}
}
if (noDuplicate.Count < 3) message = noDuplicate.Count.ToString();
else
{
for (int i = 0; i < score.Length; i++)
{
if (score == noDuplicate[2])
{
howManyThird++;
}
}
message = noDuplicate[2] + " " + howManyThird;
}
return message;

}


Подробнее здесь: https://stackoverflow.com/questions/786 ... ange-error

Вернуться в «C#»