C# 如何检查listbox中的任何项是否与另一个listbox匹配

C# 如何检查listbox中的任何项是否与另一个listbox匹配,c#,.net,listbox,C#,.net,Listbox,因此,我需要检查listbox1中列出的任何名称是否在listbox2中列出 如果listbox1中有一个名称不在listbox2中,则执行一个操作。如何做到这一点?首先需要在每个列表框中获取所选值,然后将其传递给字符串变量,然后使用if和else语句进行比较 范例 If(a ==b) { //do nothing } else { //do something } 或者你可以一直这样尝试 If(a != b) { //do something } 如果Listbox1上的项目不在Listb

因此,我需要检查listbox1中列出的任何名称是否在listbox2中列出


如果listbox1中有一个名称不在listbox2中,则执行一个操作。如何做到这一点?

首先需要在每个列表框中获取所选值,然后将其传递给字符串变量,然后使用if和else语句进行比较

范例

If(a ==b)
{
//do nothing
}
else
{
//do something
}
或者你可以一直这样尝试

If(a != b)
{
//do something
}

如果Listbox1上的项目不在Listbox2上,则可以执行foreach循环进行比较:

 foreach (var item in listBox1.Items)
        {
            if (!listBox2.Items.Contains(item))
            {
               //TODO: Do your logic here   
            }
        }

一种解决方案是选择两个列表框中的所有项目,并将它们分别插入各自的列表中,然后可以使用扩展方法从第一个列表中的第二个列表中减去元素,以生成listbox1中不在listbox2中的名称

var listBox1=listBox1.Items.Cast().ToList();
var listBox2=listBox2.Items.Cast().ToList();
var resultSet=listBox1.Except(listBox2);
foreach(结果集中的变量项)
{
//做点什么
}
要回答:

检查列表框1中列出的任何名称是否在列表框2中列出

以及:

如果listbox1中有一个名称不在listbox2中,则执行一个操作。如何做到这一点

var listBox1 = ListBox1.Items.Cast<String>().ToList();
var listBox2 = ListBox2.Items.Cast<String>().ToList();
var resultSet = listBox1.Except(listBox2);

foreach (var item in resultSet)
{
    // do something
}
foreach (var list1Item in listBox1.Items)
    foreach(var list2Item in lisBox2.Items)
        if (list1Item == list2Item)
        {
           // Identical items found. Handle with your code 
        }
foreach (string item in listBox1.Items)
        if(!listBox2.Items.Contains(item))
        {
           // 'item' is present in listBox1, not in listBox2. Handle yourself.
        }