合并两个列表<t>并比较</t>

时间:2011-07-21 13:40:21

标签: c# .net list

  

可能重复:
  comparing two List<>

emp_db_snapshot - 从db加载用户过去选择的内容的新副本:

emp_selected_by_user - 用户选择的列表,用户可能会更改已选择的内容,或者可能会在列表中添加更多内容:

//let say i have two rows in the list.
List<Employee> emp_db_snapshot = new List<Employee>();
emp_db_snapshot = EmployeeListFromDB ; //loads the list from db

//let say i have two rows in the list.
List<Employee> emp_selected_by_user = new List<Employee>();
emp_selected_by_user = MySelectedEmployee //loads the list selected by user.


//merging the two lists:
//got total of 4 rows.
List<Employee> allEmployee = emp_db_snapshot.Union(emp_selected_by_user).ToList();

所以我的问题是:

我如何区分或比较?

1 个答案:

答案 0 :(得分:1)

我会尝试回答这个问题。

如果碰巧有一些相同的数据,你可以收集每个集合之间的差异。

var DifferencesList = ListA.Where(x => !ListB.Any(x1 => x1.id == x.id)).Union(ListB.Where(x => !ListA.Any(x1 => x1.id == x.id)));

我可以假设在那时找到集合之间的交集并将该结果合并到差异列表中。这将允许您拥有一个集合,所有数据只出现一次。