0

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

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

characterArray 中的字符都是大写的,这就是为什么我要进行字符串操作而不仅仅是比较字符的原因。我是否遗漏了一些简单的东西,或者有人可以帮我解决这个问题吗?

4

1 回答 1

2

将字符串剥离为大写字符的集合,然后使用 LINQ 的Intersect()方法怎么样?

bool isMatch = stringCollection.Select(s => Char.ToUpper(s[0]))
  .Distinct()
  .Intersect(characterArray).Any();
于 2013-05-25T01:51:58.330 回答