我对这个Linq声明感到有点难过。我的基本数据库结构是:
我有一个事件列表,我希望通过包含指定标记的事件或它们所包含的地点包含标记来缩小事件范围。
我试过这个,我想我可能不会太离谱,但我仍然在努力让它发挥作用:
eventsList = eventsList
.SelectMany(x => x.EventTag)
.Where(et => et.TagID == tagID)
.Select(et => t.Event)
.Union(eventsList.SelectMany(x=>x.Venue.VenueTag)
.Where(vt =>vt.TagID == tagID)
.Select(vt=>vt.Venue.Event)
.Distinct()
.ToList();
我非常感谢你的帮助!
安迪
答案 0 :(得分:3)
您可以使用Any
:
eventsList.Where(
x => x.EventTag.Any(et => et.TagID == tagID)
|| x.Venue.Any(v => v.Any(vt => vt.TagID == tagID)))
.ToList();