我有2 Lists
string
类型:
List1 has items - item1, item2, item3
List2 has items - item1, item4, item5
现在我需要比较两个lists
并添加从缺少的转换成List1
。修改后的List1
将
list 1 : item1, item2, item3, item4, item5
我有2 Lists
string
类型:
List1 has items - item1, item2, item3
List2 has items - item1, item4, item5
现在我需要比较两个lists
并添加从缺少的转换成List1
。修改后的List1
将
list 1 : item1, item2, item3, item4, item5
一个简单的方法:
foreach(string item in List2)
{
if(!List1.Contains(item))
List1.Add(item);
}
当然也有短(代码lenght)选项
你可以用这个代码尝试 - 除了运营商
var result = List2.Except(List1);
foreach(string item in result)
{
List1.Add(item);
}
你可以使用LINQ
这个。
看看Except
方法,然后将最终的集合加入到原始集合中。
参见:http://csharp.net-tutorials.org/category/linq-to-objects/linq-except/
我会使用LINQ做
var result = List1.Union(List2);
http://msdn.microsoft.com/en-us/library/bb358407.aspx
返回值 类型:System.Collections.Generic.IEnumerable 一个IEnumerable包含来自两个输入序列的元素,不包括重复。
您可以使用LiNQ
此:
List<string> newList = List1.Union(List2).ToList();
VAR mergedList = list1.Union(列表2).ToList(); http://stackoverflow.com/questions/720609/merge-two-object-lists-with-linq – rsplak 2012-08-03 13:46:11
就是这样! – Sandeep 2012-08-03 13:49:21