合并两个列表的项目

时间:2010-01-14 12:26:48

标签: linq

我想组合两个字符串列表的项目但不想重复项目

List<string> l1 = new List<string>() { "A", "B", "C", "D"};
List<string> l2 = new List<string>() { "B", "E", "G", "D"};

结果:A,B,C,D,E,G

我怎样才能实现这个目标?

4 个答案:

答案 0 :(得分:5)

使用UnionDistinct运营商:

var newList = l1.Union(l2).Distinct().ToList();

答案 1 :(得分:4)

您可以使用LINQ生成两个列表的并集:

var combined = l1.Union(l2);

答案 2 :(得分:1)

这应该有效。不像上面的答案那么优雅。

        List<string> l1 = new List<string>() { "A", "B", "C", "D" };
        List<string> l2 = new List<string>() { "B", "E", "G", "D" };

        l1.Concat(l2);
        IEnumerable<string> noDupes = l1.Distinct();

答案 3 :(得分:0)

C#2.0版

Dictionary<string,string> dict = new Dictionary<string,string>();
l1.AddRange(l2);
foreach(string s in l1) dict[s] = s;
List<string> result = new List<string>(dict.Values);