交叉匹配2个集合使用Linq . any

本文关键字:Linq any 集合 2个 | 更新日期: 2023-09-27 18:15:21

我正试图使用Linq交叉匹配2个集合。我有一个对应字母表中字母的字符数组,我想知道给定集合中的字符串是否以这些字母中的任何一个开头。我认为这应该是工作的,但我至少在一个情况下返回false,我知道它不应该:

bool isMatch = stringCollection.Any(stringValue => {
   return characterArray.Any(letter => stringValue[0].ToString().ToUpper() 
   == letter.ToString()); 
});

characterArray中的字符都是大写的,这就是为什么我在做字符串操作,而不仅仅是比较字符。我错过了一些简单的还是有人能帮我修复这个声明?

交叉匹配2个集合使用Linq . any

如果将字符串分解为大写字符的集合,然后使用LINQ的Intersect()方法呢?

bool isMatch = stringCollection.Select(s => Char.ToUpper(s[0]))
  .Distinct()
  .Intersect(characterArray).Any();