繁体   English   中英

这个lambda表达式可能吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM