C#Lambda表达式用逗号分隔的id拉取所有名称

时间:2018-03-22 22:27:57

标签: c# lambda linq-to-entities

我在逗号分隔的字符串中使用roled id。我试图根据角色id从循环中分别从db中提取角色名称。

有没有选项可以使用linq或lambda表达式一次性获取所有角色名?

例如我有

var roleIds = "1,3,5,9";

与下面的lambda表达式类似,可以拉出一个角色名称,我可以在没有循环的单行代码中提取角色ID的所有角色名称吗?

for (var i; i < mycommaseperatedRoleIds.count; i++)
    var roleName = db.Roles.Where(k => k.Id == roleId).Select(p => p.Role);

1 个答案:

答案 0 :(得分:5)

您可以这样做:

var roleIds ="1,3,5,9".Split(',').Select(s => int.Parse(s));

var roleNames = db.Roles.Where(k => roleIds.Contains(k.Id)).Select(p => p.Role);