如何从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
并不意味着要得到所发现的东西,而只是发现了一些东西。
如果您还想找到什么,我认为您应该使用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
}