Linq匹配字符串列表和字符串值

时间:2015-02-24 14:46:30

标签: c# linq

我使用下面的代码

 string userList = string.Join(",", db.UserRole.Where(p => p.FirmUserID == 1).Select(p => p.RoleID.ToString()));

userList 值如下,

1,12,17,33,76

我也在字符串列表

下面
List<string> roleList = new List<string>();
roleList.add("14");
rolelist.add("33");
roleList.add("76");

如何检查userList是否包含roleList值并获取实体框架中的匹配值?

1 个答案:

答案 0 :(得分:2)

首先,不要将userList转换为字符串,而是将其保存为List

List<string> userList = db.UserRole.Where(p => p.FirmUserID == 1).Select(p => p.RoleID.ToString()).Tolist();

检查userList 是否包含 roleList

bool doesInclude = !roleList .Except(userList).Any();

获得比赛:

List<string> matches = userList.Intersect(roleList).ToList();

但是如果这是你需要完成的事情,你最好使用sith整数类型而不是字符串,因为字符串比较更容易出错(由用户)。