2009-08-25 16 views

答えて

0

は、このコードは、選択したすべての項目をlistview2とListView1の

foreach (ListViewItem itm in ListView1.SelectedItems) 
    { 
     ListView1.Items.Remove(itm); 
     listView2.Items.Add(itm); 
    } 
+0

アイテムを反復処理している間にアイテムを列挙から削除することはお勧めできません。 http://generally.wordpress.com/2007/10/24/removing-items-in-a-list-while- iterating-through-it/ http://stackoverflow.com/questions/1114735/when-items-change-while-being-enumerated-does-it-affects-the-enumeration – Rob

+0

アイテムを反復するときにアイテムを削除するのは悪い考えです – RvdK

+0

申し訳ありません。反復するときにアイテムを削除するのは悪い考えです。新しい情報をありがとうございます。 –

3

のではなく、あなたが(ワエルの答えあたりとして)列挙しているコレクションから項目を削除するからそれを削除するために最初ListView1のからコピーされますこれは「悪いアイデア」で、この例ではemporary収集、それらを削除する前にそれらを格納するためのリスト:

ListView1のは、選択したアイテムをリストでありlistView2は、それらを移動するためのリストである
List<ListViewItem> itemsToMove = new List<ListViewItem>(); 
    foreach (ListViewItem item in listView1.SelectedItems) 
    { 
     itemsToMove.Add(item); 
    } 
    foreach (ListViewItem item in itemsToMove) 
    { 
     listView1.Items.Remove(item); 
     listView2.Items.Add(item); 
    } 

+0

+1、新しい情報です。 –

関連する問題