Несколько вещей попались на мой взгляд.
Сначала вы ошибаетесь, чтобы использовать оператор инкремента. Для того, чтобы убедиться, что запустить этот код:
for (int i = 0; i < listCountAnwsers.Count; i++)
Console.WriteLine(listCountAnwsers[i] + "\t" + listCountAnwsers[i++]);
выход будет как:
1 1
3 3
Вот почему ваш код никогда не входит в if
-условию.
Другая проблема заключается в том, что вы удаляете элементы. Это влечет за собой изменение свойства списка listCountAnwsers.Count
. Для того, чтобы убедиться:
for (int i = 0; i < list.Length; i++)
{
listCountAnwsers.Remove(listCountAnwsers[i]);
Console.WriteLine(listCountAnwsers.Count);
}
выход:
2
1
Тогда исключение как argument out of range
. В самом деле. Также вы можете получить такое исключение, если попробуете что-то вроде этого:
if (Int32.Parse(listCountAnwsers[i]) < Int32.Parse(listCountAnwsers[i + 1]))
listCountAnwsers.Remove(listCountAnwser[i]);
Таким образом, решение вашей проблемы зависит от того, что вам нужно. Какие элементы вы хотите иметь в результате? Просьба уточнить
Это моя ошибка. Мой код должен быть «listCountAnwsers.Add (listCountAnwser [i]); –
@BinhHuynh Хорошо, вы можете уточнить свой вопрос, если у вас все еще есть некоторые проблемы. И я постараюсь вам помочь. По-видимому, проблема решена только путем замены 'i ++' на 'i + 1' .. – red0ct
Я заменил i ++ на i + 1 и работал Спасибо за вашу помощь! –