如何查找列表中的某个元素是否在另一个列表中以及元素的名称

本文关键字:列表 元素 是否 另一个 何查找 查找 | 更新日期: 2023-09-27 18:17:17

首先,我想知道是否可以在第二个列表中找到第一个列表中的至少一个元素。

List<string> list1 = new[] { "A", "C", "F", "H", "I" };
List<string> list2 = new[] { "B", "D", "F", "G", "L" };

我正在使用下面的代码来执行此操作 -

bool isFound = list1.Intersect(list2).Any();

但我想知道这是哪个元素。就像上面的情况一样,它是'F'

最好的方法是什么?

如何查找列表中的某个元素是否在另一个列表中以及元素的名称

你只使用Intersect

var result = list1.Intersect(list2);

尝试:

        List<string> list1 = new List<string> { "A", "C", "F", "H", "I" };
        List<string> list2 = new List<string> { "B", "D", "F", "G", "L" };
        String sel = list1.Intersect(list2).FirstOrDefault()??"";
        Console.WriteLine(sel);

试试我的演示

您只能使用Enumerable.Intersect方法,在您的情况下不需要使用 Any

生成两个序列的集合交集。

List<string> list1 = new List<string>(){ "A", "C", "F", "H", "I" };
List<string> list2 = new List<string>(){ "B", "D", "F", "G", "L" };
var intersect = list1.Intersect(list2);
foreach (var i in intersect)
{
     Console.WriteLine(i);
}

输出将是;

F

这是一个DEMO.

代替布尔变量 你可以采用另一个列表变量,例如:

List<string> list3变量,用于获取第二个列表中列出的项目列表,并将结果分配给列表3

 List<string> list3= list1.Intersect(list2).ToList();