0

我创建了两个列表,例如,

            var list = new List<KeyValuePair<string, string>>();
            list.Add(new KeyValuePair<string, string>("1", "abc"));
            list.Add(new KeyValuePair<string, string>("2", "def"));
            list.Add(new KeyValuePair<string, string>("3", "ghi"));


            var list2 = new List<KeyValuePair<string, string>>();
            list.Add(new KeyValuePair<string, string>("1", "abc"));
            list.Add(new KeyValuePair<string, string>("2", "def"));
            list.Add(new KeyValuePair<string, string>("3", "ghi"));
            list.Add(new KeyValuePair<string, string>("4", "jkl"));

           var unmatchedlist= new List<KeyValuePair<string, string>>();

如何比较两个列表。现在我需要list.Add(new KeyValuePair("4", "jkl")); (因为它不在 firstlist 中,但它在 secondlist 中有用)在 unmatchedlist 中?

4

3 回答 3

2

一种方法:

list1 = list1.Union(list2);

或者 :

list1.AddRange(list1.Except(list2));
于 2013-10-25T09:46:35.493 回答
0

这将使您了解 list2 和 list 之间的区别:

var unmatched = list2.Except(list);

然后只需将项目添加到出现不匹配的列表中。

于 2013-10-25T09:43:15.730 回答
0

以这种方式检查

//This will be empty
var difference1 = list1.Except(list2);

或者反过来

//This will contain item 4
var difference2 = list2.Except(list1);
于 2013-10-25T09:45:51.850 回答