两个List 之间的区别

我可以使用花哨的LINQ查询返回List ,方法是将它传递给方法( List oldList, List newList ),看看两个列表之间有什么区别?

基本上,我想获取添加到newList的任何文件的列表,这些文件在oldList中不可用。

给定FileInfoIEqualityComparer如下所示:

 public class FileInfoEqualityComparer : IEqualityComparer { public bool Equals(FileInfo x, FileInfo y) { return x.FullName.Equals(y.FullName); } public int GetHashCode(FileInfo obj) { return obj.FullName.GetHashCode(); } } 

您可以使用以下代码查找两个列表之间的差异:

 var allItems = newList.Union(oldList); var commonItems = newList.Intersect(oldList); var difference = allItems.Except(commonItems, new FileInfoEqualityComparer()); 

要查找添加到newList列表的项目,请使用以下代码:

 var addedItems = newList.Except(oldList, new FileInfoEqualityComparer());