基于我对其他问题的建议答案...是否可以在LINQ枚举期间更新变量,以便您可以将其用作测试的一部分?
例如,这样的事情可能吗?
// Assume limitItem is of type Foo and sourceList is of type List<Foo>
// Note the faux attempt to set limitItemFound in the TakeWhile clause
// That is what I'm wondering.
sourceList.Reverse()
.TakeWhile(o => (o != limitItem) && !limitItemFound; limitItemFound = limitItemFound || (o == limitItem) )
.FirstOrDefault(o => ...);
Run Code Online (Sandbox Code Playgroud)
这将使搜索包含limitItem.
对于LINQ to Objects(接受委托),你可以,是的 - 使用语句lambda:
sourceList.Reverse()
.TakeWhile(o => {
... fairly arbitrary code here
return someValue;
})
.FirstOrDefault(o => ...);
Run Code Online (Sandbox Code Playgroud)
我强烈反对你不这样做.这将使得理解正在发生的事情变得更加困难,因为你正在失去习惯性LINQ代码的声明性质.
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |