如何从Enumerable.Any和List.Contains比较中获取字符串值

本文关键字:比较 获取 字符串 Contains List Enumerable Any | 更新日期: 2023-09-27 18:28:50

我有两个字符串列表,我正在检查列表1是否包含列表2中的任何项。

if (List2.Any(s => List1.Contains(s)))
{ //do stuff 
}

如果找到一个字符串,我想记录它,但我找不到从上面的代码中获得S值的方法。

当我试图将"S"写成字符串的变量时,它不会被识别为一个变量。

如何从上面的比较中获得S的值?

此外,我不知道如何用语言表达我想要的标题。如果你有关于如何重写标题的建议,我愿意接受。我希望它能准确地回答这个问题。

如何从Enumerable.Any和List.Contains比较中获取字符串值

Enumerable.Any并不意味着要得到所发现的东西,而只是发现了一些东西

如果您还想找到什么,我认为您应该使用Enumerable.FirstOrDefault:

string result = list2.FirstOrDefault(s => list1.Contains(s));
if(!string.IsNullOrEmpty(result))
{
    // do stuff...
}

另一方面,如果你想要所有的巧合,你应该使用Enumerable.Intersect:

IEnumerable<string> allCoincidences = list2.Intersect(list1);

这个Linq将在一行中完成您需要的操作

if ((from s in List2 from s1 in List1 where s == s1 select s).Any())
{
  //do stuff 
}