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