我使用下面的代码
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值并获取实体框架中的匹配值?
答案 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整数类型而不是字符串,因为字符串比较更容易出错(由用户)。