我一直在尝试使用lambda:
var y = from r in rs.Returns from z in r.Tags where z.Name.Contains(c) select r;
Run Code Online (Sandbox Code Playgroud)
我试过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);
Run Code Online (Sandbox Code Playgroud)
这是一个非常直接的翻译.另一种选择是使用:
var y = rs.Returns.Where(r => r.Tags.Any(z => z.Name.Contains(c)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |