我一直在尝试为此使用 lambda :
var y = from r in rs.Returns from z in r.Tags where z.Name.Contains(c) select r;
我尝试了 var r = rs.Returns.Where(x=>x.Tags.Where(x=>x.Name.Contains(c)));
但没有成功。什么是正确的 lambda,所以我不必使用 y
& z
最佳答案
您需要一个 SelectMany
来翻译第二个“from”子句:
var y = rs.Returns
.SelectMany(r => r.Tags, (r, z) => new { r, z })
.Where(pair => pair.z.Name.Contains(c))
.Select(pair => pair.r);
这是一个非常直接的翻译。另一种选择是使用:
var y = rs.Returns.Where(r => r.Tags.Any(z => z.Name.Contains(c)));
关于c# - Linq 查询到 Lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339617/