找到两个列表中的并集和交集项的最快方法

时间:2009-11-12 04:05:16

标签: c#-3.0

这是找到两个列表之间的并集和交集的最快方法吗? 我的意思是。 我有两个名单说 的列表与LT 1为卤素;
1
2
3
4

李氏&LT 2 - ;
2
3

最后我需要输出为
列表与LT 3的密度;
未定义
2
3
未定义

希望我清楚我的要求。 如果我在混淆,请告诉我

2 个答案:

答案 0 :(得分:4)

LINQ已经有了Union和Intersection。你的例子既不是。

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

答案 1 :(得分:0)

或者你可以做以下事情,它只是给你一个交集:

        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();