我有一组叫做的对象Gigs.
每个Gig都有一个Acts集合.
使用Linq我想查询我的演出集合以获取所有演出,其中例如具有id为7的动作.
act.id = 7;
Run Code Online (Sandbox Code Playgroud)
所以我开始写作......
return from gig in qry
where gig.Acts //not sure how to do this bit
select gig;
Run Code Online (Sandbox Code Playgroud)
但是我不确定你是如何为名为actions的子集合设置条件的.
有任何想法吗?
Qui*_*son 12
基本上与Mike_G相同,只是更详细的语法和使用相等.
var myCollection = from gig in qry
where gig.Acts.Any(act => act.ID == 7)
select gig;
Run Code Online (Sandbox Code Playgroud)
只是编辑带来评论答案:
实际上,查询是针对Act对象上的成员(Artist)上的ID,该ID可以为null.
新查询:
var myCollection = from gig in qry
where gig.Acts.Any(act => (null != act.Artist) && (act.Artist.ID == 7))
select gig;
Run Code Online (Sandbox Code Playgroud)
var x = gigs.Where(g=>g.Acts.Select(a=>a.ID).Contains(7));
Run Code Online (Sandbox Code Playgroud)
这两个查询也返回相同:
var x = gigs.Where(g=>g.Acts.Count(a=>a.ID == 7) > 0);
var x = gigs.Where(g=>g.Acts.FirstOrDefault(a=>a.ID == 7) != null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10314 次 |
| 最近记录: |