Cra*_*aig 7 .net c# linq list list-comparison
我可以使用花哨的LINQ查询来返回a List<FileInfo>
,方法是将它传递给方法(List<FileInfo> oldList, List<FileInfo> newList
),并查看两个列表之间存在哪些差异?
基本上,我想获取添加到newList的任何文件的列表,这些文件在oldList中不可用.
dec*_*one 16
给定一个IEqualityComparer
用于FileInfo
如下图所示:
public class FileInfoEqualityComparer : IEqualityComparer<FileInfo>
{
public bool Equals(FileInfo x, FileInfo y)
{
return x.FullName.Equals(y.FullName);
}
public int GetHashCode(FileInfo obj)
{
return obj.FullName.GetHashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下代码查找两个列表之间的差异:
var allItems = newList.Union(oldList);
var commonItems = newList.Intersect(oldList);
var difference = allItems.Except(commonItems, new FileInfoEqualityComparer());
Run Code Online (Sandbox Code Playgroud)
要查找添加到newList
列表的项目,请使用以下代码:
var addedItems = newList.Except(oldList, new FileInfoEqualityComparer());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4110 次 |
最近记录: |