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

本文关键字:列表 是否 字符串 查询 LINQ 用于 检查 基本 | 更新日期: 2024-10-23 07:44:55

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

例如,我在MyGroups中有字符串。Name="Admin Only"和AllowedGroups="Admin Only,Normal Group"。我不明白为什么下面的表达式在应该为true的情况下评估为false:

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

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

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

类似这样的东西:

var allowedGroupsArray = AllowedGroups.Split(',');
var result = model.MyGroups.Any(m => allowedGroupsArray.Contains(m.Name));

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

返回false,因为Admin Only不包含Admin Only,Normal Group