我有一个列表MyGroups和一个字符串'AllowedGroups'。
例如,我在MyGroups.Name =“Admin Only”和AllowedGroups =“Admin Only,Normal Group”中有字符串。 我无法理解为什么下面的表达式应该为true时评估为false:
model.MyGroups.Any(m => m.Name.Contains(AllowedGroups)
答案 0 :(得分:6)
根据您提供的信息,我认为您需要的是与您所拥有的相反。
这样的事情:
var allowedGroupsArray = AllowedGroups.Split(',');
var result = model.MyGroups.Any(m => allowedGroupsArray.Contains(m.Name));
具体来说,在Array.Contains()
调用中使用.Any()
应该在SQL中生成基本上WHERE ... IN
类型的子句。
答案 1 :(得分:0)
它返回false,因为Admin Only不包含Admin Only,Normal Group