我想結合兩個字符串列表項,但不希望重複項結合項目兩個列表
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
我怎麼能做到這一點?
我想結合兩個字符串列表項,但不希望重複項結合項目兩個列表
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
我怎麼能做到這一點?
使用Union
和Distinct
運營商:
var newList = l1.Union(l2).Distinct().ToList();
這應該工作。不像上述答案那麼優雅。
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();
您可以使用LINQ產生兩個列表的工會:
var combined = l1.Union(l2);
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);
它不會,因爲它被定義爲並集。從MSDN文檔:'此方法從返回集中排除重複項。這與Concat <(Of <(TSource>)>)方法不同,它返回輸入序列中的所有元素,包括重複項。 – 2010-01-14 13:41:12