C# linq query, select parent list 根据nest list的条件
C# linq query, select parent list based on the condition of nest list
我有一个项目列表,每个项目的项目成员列表如下
public List<Project> Projects { get; set; }
public class Project
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public List<Member> Members { get; set; }
}
public class Member{
public Guid Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
我想 select 使用 LINQ 项目获取成员 ID 列表,谢谢!
尝试这样的事情:
var projects = new List<Project>();
List<Guid>searched_value = new List<Guid>();
var newList = projects.Where(p => p.Members.Any(m => searched_value.Any(s => s == m.Id))).ToList();
已编辑以反映 OP 想要对照列表进行检查
如果您有一个 Guid
的列表,您可以使用 .Where()
:
中的 .Contains()
来检查它
var projects = new List<Project>();
//Add projects
var memberIds = new List<Guid>();
//Add member IDs
var memberProjects = projects
.Where(p => p.Members.Any(m => memberIds.Contains(m.Id)));
我有一个项目列表,每个项目的项目成员列表如下
public List<Project> Projects { get; set; }
public class Project
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public List<Member> Members { get; set; }
}
public class Member{
public Guid Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
我想 select 使用 LINQ 项目获取成员 ID 列表,谢谢!
尝试这样的事情:
var projects = new List<Project>();
List<Guid>searched_value = new List<Guid>();
var newList = projects.Where(p => p.Members.Any(m => searched_value.Any(s => s == m.Id))).ToList();
已编辑以反映 OP 想要对照列表进行检查
如果您有一个 Guid
的列表,您可以使用 .Where()
:
.Contains()
来检查它
var projects = new List<Project>();
//Add projects
var memberIds = new List<Guid>();
//Add member IDs
var memberProjects = projects
.Where(p => p.Members.Any(m => memberIds.Contains(m.Id)));