c# - Linq 用整数列表连接对象列表

标签 c# asp.net asp.net-mvc-3 linq lambda

我有一个场景如下:

    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)));

如果 mediaGalleriesMediaGallery::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/

相关文章:

c# - 为什么反斜杠的这个替换不起作用?

C# .NET 标准 1.6 在已发布的应用程序中具有过多的依赖性

c# - 如何在 C# 中的单个 SQL 查询中更新水果列表的 crate ID

javascript - 从javascript中的raddatepicker获取选定的日期

c# - 信箱不可用。服务器响应为 : 5. 7.1 无法中继错误

asp.net-mvc-3 - Entity Framework 、MVC 3、LINQ To Entities 中的 OrderBy

c# - 遍历 Excel 范围并写入 .net 中的单元格

c# - 从类名中获取模型元数据

asp.net-mvc - 如何从mvc3调用存储过程?

c# - 从数据库创建组合框时无法将 int 隐式转换为字符串