我有一个场景如下:
Event:
public int EventId { get; set; }
public string EventName { get; set;}
MediaGallery:
public int MediaGalleryID { get; set; }
public string Name { get; set; }
public List<int> EventId { get; set;}
List<Event> eventList = query.Event.ToList();
List<MediaGallery> mediaGallreis = query.MediaGallery.ToList();
我需要检索 eventId 存在于 MediaGallery 的 eventID 列表中的 eventList。 谁能给我建议?
最佳答案
尝试以下操作
var list = eventList
.Where(e => mediaGalleries.Any(mg => mg.EventId.Any(id => id == e.EventId)));
如果 mediaGalleries
或 MediaGallery::EventId
列表足够大,您可能需要考虑另一种方法。创建一组可能的值并直接查询该集合
var idSet = new HashSet(mediaGelleries.SelectMany(x => x.EventId));
var list = eventList.Where(e => idSet.Contains(e.EventId));
关于c# - Linq 用整数列表连接对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975075/