[英]Is this lambda expression possible?
感谢对此的帮助。
试了这个,没有运气。
我知道
from f in list
where f.bar == someVar
select f
可以写成
list.Where( f => f.bar == someVar );
是否可以从创建类似的表达式
from f in foo
from b in f.bar
where b.something == someVar
select f;
?
编辑:对不起,我在第二个示例中忘记了f.bar是对象列表。
当然。 查询语法只是语法糖。 编译器会将其转换为基础lambda语法,因此每个查询表达式都具有一个等效的基于lambda的表示形式。
这可能就是您所需要的(这并不严格等同于此,但是当您在每个foo
只有一个与查询匹配的bar
时才有效):
var result = foo.Where(f => f.bar.Any(b => b.something == someVar));
严格等效的版本是:
var result = foo.SelectMany(f => f.bar, (f, b) => new { F = f, B = b })
.Where(x => x.b.something == someVar)
.Select(x => x.f);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.