Как я могу проверить свой listview2, если строка, которую я выбрал в listview1, уже находится в listview2? я не понимаю listView1.Items.Contains () и ContainKey ()

Вот мой код для получения выбранной строки в listview1:

 private void listView1_DoubleClick(object sender, EventArgs e)
    {
        if (listView1.SelectedItems.Count > 0)
        {
            foreach (ListViewItem item in listView1.SelectedItems)
            { 
                //how do i condition this selected item? to prevent inserting same items in the listview2
                listView2.Items.Add((ListViewItem)item.Clone());//cloning the item to insert in listview2

            }
        }

    }

Как я могу сравнить выбранную строку в listview1 с элементами listview2?

1
user5939594 24 Фев 2016 в 18:27

2 ответа

Лучший ответ

Если элементы вашего listView1 являются списком строк, вы можете использовать

private void listView1_DoubleClick(object sender, EventArgs e)
{
    // You don't need to check:  if (listView1.SelectedItems.Count > 0)
    foreach (ListViewItem item in listView1.SelectedItems)
    {
        bool isExist = false;
        foreach (ListViewItem item2 in listView2.Items)
        {
            if (item2.Text == item.Text) // Compare Text
            //if (item2.ImageKey == item.ImageKey) // Compare Key. If you don't use key then ignore this line
            {
                isExist = true;
                break;
            }
        }
        if (!isExist) listView2.Items.Add((ListViewItem)item.Clone());
    }
}
1
Tuyen Pham 24 Фев 2016 в 17:02
private void listView1_DoubleClick(object sender, EventArgs e)
{
   if (listView1.SelectedItems.Count > 0)
   {
       foreach (ListViewItem item in listView1.SelectedItems)
       { 
          if(!listView2.Items.Contains(item)) //verify text and value. if don't contain add
              listView2.Items.Add((ListViewItem)item.Clone());

      }
   }

}
0
Guilherme Guini 24 Фев 2016 в 18:33