我有三个列表
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);
}
修改 ,,
我认为我需要的是三个列表
答案 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