如何使用LINQ查找与2个逗号分隔的字符串匹配

Joh*_*Doe 7 c# linq

我是LINQ的新手.

我试图比较2个逗号分隔的字符串,看看它们是否包含匹配的值.

我有一个包含代码列表的字符串.masterFormList ="AAA,BBB,CCC,FFF,GGG,HHH"

我试图将它与对象列表进行比较.在给定字段中,FormCode包含逗号分隔的代码字符串.我想看一下这个字符串中至少有一个代码是否在masterFormList中.我怎么写linq来完成这个?

现在我有:

resultsList = (from r in resultsList
where r.FormCodes.Split(',').Contains(masterFormList)
select r).ToList();
Run Code Online (Sandbox Code Playgroud)

它不会从列表中返回任何匹配的项目.

请指教

Ree*_*sey 10

您需要构建要搜索的项目集合,然后检查该集合中是否包含任何项目:

var masterSet = new HashSet<string>(masterFormList.Split(','));

resultsList = resultsList
                 .Where(r => r.FormCodes.Split(',')
                              .Any(code => masterSet.Contains(code)))
                 .ToList();
Run Code Online (Sandbox Code Playgroud)

  • 如果逗号后有空格(通常是),则可以使用`.Split(',')。Select(p =&gt; p.Trim())。&lt;continue&gt;` (2认同)