C# 3.0 在两个列表中查找并集和交集项的最快方法

C# 3.0 在两个列表中查找并集和交集项的最快方法,c#-3.0,C# 3.0,找到两个列表之间的并集和交集的最快方法是什么? 我是说。 我有两张单子要说 列表 1 2 3 4 Lis 2 3 最后,我需要将输出作为 列表 未定义 2 3 未定义 希望我清楚我的要求。 请让我知道我是否正在使用LINQ已经有并集和交集。你的例子两者都不是 var set = new HashSet(list2) var list3 = List1.Select(x => set.Contains(x) ? x : null).ToList(); LINQ已经有了并集和交集。你的例子两

找到两个列表之间的并集和交集的最快方法是什么? 我是说。 我有两张单子要说 列表
1
2
3
4

Lis
2
3

最后,我需要将输出作为
列表
未定义
2
3
未定义

希望我清楚我的要求。
请让我知道我是否正在使用

LINQ已经有并集和交集。你的例子两者都不是

var set = new HashSet(list2)
var list3 = List1.Select(x => set.Contains(x) ? x : null).ToList();

LINQ已经有了并集和交集。你的例子两者都不是

var set = new HashSet(list2)
var list3 = List1.Select(x => set.Contains(x) ? x : null).ToList();

或者,您可以执行以下操作,这将为您提供交叉点:

        HashSet<int> list1 = new HashSet<int>() { 1, 2, 3, 4 };
        HashSet<int> list2 = new HashSet<int>() { 2, 3 };
        List<int> list3 = list1.Intersect(list2).ToList();
        for (int i = 0; i < list3.Count; i++)
        {
            Console.WriteLine(list3[i]);
        }
        Console.ReadLine();
HashSet list1=newhashset(){1,2,3,4};
HashSet list2=新的HashSet(){2,3};
List list3=list1.Intersect(list2.ToList();
for(int i=0;i
或者您可以执行以下操作,只需提供交叉点即可:

        HashSet<int> list1 = new HashSet<int>() { 1, 2, 3, 4 };
        HashSet<int> list2 = new HashSet<int>() { 2, 3 };
        List<int> list3 = list1.Intersect(list2).ToList();
        for (int i = 0; i < list3.Count; i++)
        {
            Console.WriteLine(list3[i]);
        }
        Console.ReadLine();
HashSet list1=newhashset(){1,2,3,4};
HashSet list2=新的HashSet(){2,3};
List list3=list1.Intersect(list2.ToList();
for(int i=0;i
您想要并集还是交叉点?在您的示例中,“未定义”是指您不关心发生了什么,还是希望它实际说“未定义”?是否对其中一个/两个列表进行了排序?您想要并集还是交集?在您的示例中,“未定义”是指您不关心发生了什么,还是希望它实际说“未定义”?是否对其中一个/两个列表进行了排序?警告:这将在列表3中返回空值警告:这将在列表3中返回空值