如何在linq中按列表项筛选元素
本文关键字:列表 筛选 元素 linq | 更新日期: 2023-09-27 18:28:13
我有一个用户属于一个具有特定角色的社区。user、community、CommunityRole和CommunityRoleType的类描述如下:
public class User{
public int UserId { get; set;}
public List<CommunityRole> CommunityRoles { get; set; }
}
public class Community{
public int CommunityId { get; set;}
public string Name { get; set; }
}
public enum CommunityRoleType{
Type1,
Type2
}
public class CommunityRole {
public Community Community { get; set; }
public CommunityRoleType RoleType {get; set; }
}
如何从用户列表中获取属于特定社区并被分配特定角色的用户子集??
编辑:
var usersType1 = users.Where(usr => usr.CommunityRoles.Any(role =>
role.RoleType == CommunityRoleType.Type1
&& role.Community.CommunityId == communityID)).ToList();
社区中具有CommunityRoleType Type1 的所有用户
如果你说"这个社区中的所有用户"(即你之前提到的社区):
var users = _context.Users
.Where(u => u.CommunityRoles
.Any(cr => cr.RoleType == CommunityRoleType.Type1
&& cr.Community.CommunityId == someCommunityId ));