Linq 如何按字符串列表筛选具有子集合的对象列表

Linq 如何按字符串列表筛选具有子集合的对象列表,linq,Linq,我有两个列表,一个称为sectionRoles的列表字符串和一个称为appUsers的用户对象列表。用户类有一组角色类。我想筛选appUsers列表,其中他们的任何Role.RoleName属性在sectionRoles列表中都有一个条目 我该怎么做?最好使用方法语法。这很简单: var usersWithRoles = appUsers.Where(user => user.Roles.Any(role => sectionRoles.Contains

我有两个列表,一个称为sectionRoles的列表字符串和一个称为appUsers的用户对象列表。用户类有一组角色类。我想筛选appUsers列表,其中他们的任何Role.RoleName属性在sectionRoles列表中都有一个条目

我该怎么做?最好使用方法语法。

这很简单:

var usersWithRoles = appUsers.Where(user => 
              user.Roles.Any(role => sectionRoles.Contains(role.RoleName))).ToList();
这将检查
appUsers
中的每个用户,如果其
角色的
中有
角色名
包含在
部分角色列表中