У меня есть C# Winform с ListBox. Я пытаюсь удалить все элементы, кроме последних 5 элементов. Для сортировки ListBox установлено значение «По возрастанию».Сохранять последние N элементов и удалять другие элементы из списка ListBox
Элементы в ListBox выглядеть следующим образом:
2016-3-1
2016-3-2
2016-3-3
2016-3-4
...
2016-03-28
Вот мой код, чтобы удалить начальные элементы.
for (int i = 0; i < HomeTeamListBox.Items.Count - 5; i++)
{
try
{
HomeTeamListBox.Items.RemoveAt(i);
}
catch { }
}
Я также попытался HomeTeamListBox.Items.RemoveAt(HomeTeamListBox.Items[i]);
код является правильным, в чем проблема? –
@AshkanMobayenKhiabani Неверный код. Он обходит некоторые предметы. Например, элемент, который находится в индексе 1, не будет удален с помощью этого кода. OP удаляет элемент с индексом 0, затем элементы поднимаются, и элемент, который ранее был в индексе 1, теперь находится в индексе 0. Поэтому, когда OP пытается удалить элемент в индексе 1, неожиданно он увидит элемент, который был в индексе 2 при запуске, удаляется и так далее. –