C# 如何检查列表视图 1 中的选定项是否已在列表视图 2 中以防止重复

本文关键字:列表 视图 是否 何检查 检查 | 更新日期: 2023-09-27 18:36:05

如果我在列表视图 1 中选择的行已经在列表视图 2 中,如何验证我的列表视图 2? 我不明白 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
            }
        }
    }
如何将列表视图

1 中的选定行与项目列表视图 2 进行比较?

C# 如何检查列表视图 1 中的选定项是否已在列表视图 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());
    }
}
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());
      }
   }
}