提取列表,其中字符串包含在列表中的列表中

时间:2016-09-26 09:32:37

标签: c# linq

基本上我有一个对象列表。我们称他们为会议。会议内部还有另一个对象列表。让我们给那些参与者打电话。我想返回某个参与者在列表中的所有会议。

我想要这样的事情:

meetings.Where(meeting => meeting.Participants.Name == "Test name").ToList();

基本上返回一个会议列表,其中会议的参与者名称为"测试名称"。

编辑:我实际上最终使用了MongoDB过滤器。在我提取所有"会议之前#34; (使用过滤器)然后使用LINQ过滤列表。不妨在数据库级别过滤掉结果。但这很有用。

3 个答案:

答案 0 :(得分:7)

您在寻找Any吗?

var result = meetings
  .Where(meeting => meeting
     .Participants
     .Any(participant => participant.Name == "Test name"))
  .ToList();

答案 1 :(得分:3)

您可以使用LINQ方法Any和这一行代码:

var result = meetings.Where(m => m.Participants.Any(p => p.Name == "Test name")).ToList();

答案 2 :(得分:0)

即使你尝试以下方法:

 meetings.Where(m => m.Participants.Any(k => k.Name == "Test Name")).ToList();