如何将带条件的嵌套foreach循环转换为LINQ [英] How to convert nested foreach loops with conditions to LINQ
本文介绍了如何将带条件的嵌套foreach循环转换为LINQ的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想问一下是否可以将下面的嵌套foreach循环转换为LINQ表达式.
I'd like to ask if it is possible to convert below nested foreach loops to LINQ expression.
public interface IFoo
{
bool IsCorrect(IFoo foo);
void DoSomething(IFoo foo);
}
List<IFoo> listA; //assume that contains items
List<IFoo> listB; //assume that contains items
foreach (var a in listA)
{
foreach (var b in listB)
{
if (b.IsCorrect(a))
{
b.DoSomething(a);
}
}
}
推荐答案
这应该有效:
var result =
from a in listA
from b in listB
where b.IsCorrect(a)
select new {a, b};
foreach (var item in result)
item.b.DoSomething(item.a);
这篇关于如何将带条件的嵌套foreach循环转换为LINQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文