Учитывая 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();
}
}
Вы можете использовать следующий код, чтобы найти разницу между двумя списками:
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());