当前位置: 首页 > 编程语言 > C#

LinqforNestedLoopSharing

时间:2023-04-11 12:20:12 C#

LinqforNestedLoop我有一个循环如下:foreach(xinmyColl){foreach(varyinx.MyList){result.Add(x.MyKey+y)这意味着在我的内部循环中,我需要访问当前外部元素的属性。我正在寻找LINQ语句,但我不确定。我尝试了result=myColl.SelectMany(x=>x.MyList).SelectMany(x=>/*howtogetouterloophere*/+x)查询表达式很简单:(fromxinmyCollfromyinx.MyListselectx.MyKey+y).ToList()这是有效的,因为这转化为:myColl.SelectMany(x=>x.MyList.Select(item=>new{List=x,Item=item})).Select(x=>...)//查询的其余部分,随你喜欢关键是保留列表和列表项。引导他们使用匿名类型(或任何其他容器)进行查询。这是我个人更喜欢查询语法varresult=fromxinmyCol1fromyinx.MyListselectx.MyKey+y;SelectMany存在允许访问“父”元素的重载。ListOfList.SelectMany(list=>list.InnerList,(lst,element)=>HandleInnerListAndElementFromIt(lst,element))结果=myColl.SelectMany(x=>x.MyList,(x1,x2)=>DoSomething(x1,x2)));编辑添加:对于您的具体示例,它看起来像这样:result=myColl.SelectMany(x=>x.MyList,(x,y)=>x.MyKey+y));请注意,SelectMany方法调用有两个lambda参数。第一个lambda将采用“x”并返回一个新的Enumerable。X=>x.MyList第二个lambda接受“x”和“y”并产生一个新结果。(X,Y)=>x.MyKey+Y以上就是C#学习教程的全部内容:Linq用于嵌套循环共享。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢