在C#我想比较两个列表

时间:2017-05-16 13:56:46

标签: c#

我有三个列表

List1 < Labels > lbl and List2 < Strings > value and List3 < Strings > result

我想用foreach比较

来比较两者
if (label1.text == value ) {  // value is the 2nd list name
 Label_Result.text = Result    // in third List
 Label1.font= new font("Tahoma",18);
 ListBox1.items.add(Label.text);
}

修改 ,,

我认为我需要的是三个列表

2 个答案:

答案 0 :(得分:0)

三个基本的例子。第一个使用简单的嵌套foreach:

foreach(var item1 in list1)
    foreach(var item2 in list2)
        if(item1.text == item2)
        {
            //Do your thing
        {

您可以使用LINQ减少嵌套。请注意,你可以在LINQ(你可以加入列表)中使它更加漂亮,但我已经选择了一个简单的例子来向你展示基本的想法。

foreach(var item1 in list1)
{
    var matchesInList2 = list2.Where(item2 => item1.text == item2);
    foreach(var match in matchesInList2)
    {
        //Do your thing
    }
}

有一种更简单的方法可以解决它:

var matches = list1.Where(item1 => list2.Contains(item1.text));
foreach(var item1 in matches)
{
        //Do your thing, e.g.:
        //var theTextValue = item1.text;
}

要解释这种更简单的方法:我们立即过滤list1,并且只保留.text中存在list2值的元素。
在此之后,只需循环查找找到的匹配项,您就不再需要进行过滤。

答案 1 :(得分:-1)

我认为最好的方法是:

dockerd