如何通过字符串列表过滤具有子集合的对象列表

时间:2017-03-22 17:46:02

标签: linq

我有两个列表,一个名为sectionRoles的列表字符串和一个名为appUsers的User对象列表。 User类具有Role类的集合。我想过滤appUsers列表,其中任何Role.RoleName属性在sectionRoles列表中都有一个条目。

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

1 个答案:

答案 0 :(得分:1)

这很简单:

var usersWithRoles = appUsers.Where(user => 
              user.Roles.Any(role => sectionRoles.Contains(role.RoleName))).ToList();

这会检查appUsers中的每个用户,如果Any Role的{​​{1}} RoleName列表中包含sectionRoles