2009-04-09 8 views
0

から選択した項目を削除するさまざまな方法を比較します2.は、これまでのところ私は、リストボックス(Winフォーム)から選択した項目を削除するには2つの方法を見つけたSystem.Windows.Forms.ListBox

while (myListBox.SelectedItems.Count > 0) 
{ 
    myListBox.Items.Remove(myListBox.SelectedItem); 
    // or 
    //myListBox.Items.Remove(myListBox.SelectedItems[0]); 
} 

第2の方法はわかりやすいですが、第1の方法は私にとっては奇妙です。彼らはどちらも私のために働いている、私は違いを知りたいですか?

答えて

0

最初の方法は本当に奇妙に書かれています。それは後方に行くので奇妙に見えます。これは、選択されたアイテムのコレクションを動揺させないようにするためです。選択されたアイテムのコレクションは完全には作成されていません。Enumerableコレクションであり、アイテムは要求されたときにのみ消えます。 foreachを使用することはできません。アイテムを削除すると、選択したアイテムのコレクションが変更され続けるためです。

私は実際に第2の方法を好みます。また、読みやすいものは維持しやすくなります。最初のものが読み込まれます:選択された項目を取得し、それらを後方に通し、それぞれをリストから削除します。

2番目に表示されているのは、選択したアイテムがある間に、選択可能な最初のアイテムを削除します。

2番目の方法はずっと優れています。

関連する問題