为了账号安全,请及时绑定邮箱和手机立即绑定

LINQ/Lambda 选择具有与任何动态数组元素匹配的任何集合项的记录

LINQ/Lambda 选择具有与任何动态数组元素匹配的任何集合项的记录

C#
鸿蒙传说 2021-10-23 16:29:53
使用 MVC 5 和 C#。前端允许按名称选择多个角色并将它们作为 CSV 字符串发送到控制器。然后,控制器按用户的角色属性过滤用户。前端通过Role.Name属性引用角色,尽管保存在用户配置文件中的角色由引用Role.Id。例如前端提交, "Customer,Employee,Administrator"在控制器中,我只需要选择具有这些角色的用户。// Get usersvar filteredRecords = UserManager.Users.AsQueryable();// Get requested roles (HTTP POST)string[] roleNames = model.RoleNames.Split(new string[] {","});我可以得到一个人Role.Id:RoleManager.Roles.FirstOrDefault(r => r.Name == roleName).Id如何有效地使用 LINQ/Lambda 转换roleNames为数组或列表,roleIds然后如何使用该数组/列表仅过滤包含在这些角色中的用户?
查看完整描述

2 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

也许是这个;

var reqRoles = model.RoleNames.Split(new string[] {","}).ToList();

var findRoles = RolesManager.Roles.Where(r => reqRoles.Contains(r.Name)).Select(r => r.Id).ToList();

然后您可以通过角色 ID 查找用户。

用手机写,抱歉可能有语法错误。


查看完整回答
反对 回复 2021-10-23
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信