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

Jyn*_*ynn 0 c# linq

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

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

model.MyGroups.Any(m => m.Name.Contains(AllowedGroups)
Run Code Online (Sandbox Code Playgroud)

Nat*_*ate 6

根据您提供的信息,我认为您需要的是与您所拥有的相反.

像这样的东西:

var allowedGroupsArray = AllowedGroups.Split(',');
var result = model.MyGroups.Any(m => allowedGroupsArray.Contains(m.Name));
Run Code Online (Sandbox Code Playgroud)

具体来说,Array.Contains().Any()调用内部使用应该WHERE ... IN在SQL中基本上生成一个类型子句.