用于检查字符串是否出现在列表中的基本LINQ查询

时间:2015-03-05 16:35:24

标签: c# linq

我有一个列表MyGroups和一个字符串'AllowedGroups'。

例如,我在MyGroups.Name =“Admin Only”和AllowedGroups =“Admin Only,Normal Group”中有字符串。 我无法理解为什么下面的表达式应该为true时评估为false:

model.MyGroups.Any(m => m.Name.Contains(AllowedGroups)

2 个答案:

答案 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