私はリストボックスを持つC#Winformを持っています。私は最後の5項目を除くすべての項目を削除しようとしています。 ListBoxソートは昇順に設定されています。最後のN個のアイテムを保持し、リストボックスから他のアイテムを削除します。
リストボックス内の項目は、次のようになります。ここでは
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 { }
}
また、私は1で、それがループするたびに増加する予定ですが、あなたが要素にあなたループするたびに削除しようとしているHomeTeamListBox.Items.RemoveAt(HomeTeamListBox.Items[i]);
コードが正しい、問題は何ですか? –
@AshkanMobayenKhiabaniコードが正しくありません。一部の項目をバイパスします。たとえば、インデックス1にあるアイテムは、このコードを使用して削除されません。 OPはインデックス0のアイテムを削除し、アイテムが上がり、以前インデックス1にあったアイテムがインデックス0になります。したがって、OPがインデックス1のアイテムを削除しようとすると、予期せずにインデックスにあったアイテムが表示されます開始時に2、削除されるなどです。 –