У меня есть список, в котором есть элементы, которые похожи, но имеют разные createdOn
даты.Я хочу сохранить элементы с тем же displayName, но с самой последней датой createdOn
.Я создал предикат для сравнения элементов списка на основе displayName, поэтому я могу определить, есть ли у меня элемент с таким же displayName, но я не уверен, как мне найти другой элемент с более старой датой createdOn
иудалите его.
Предикат
public bool Equals(Obj x, Obj y)
{
if (x == null && y == null) { return true; }
if (x == null || y == null) { return false; }
return x.DisplayName == y.DisplayName;
}
public int GetHashCode(Obj obj)
{
if (obj == null || obj.DisplayName == null) { return 0; }
return obj.DisplayName.GetHashCode();
}
Метод RemoveDuplicateMethod:
public static List<Obj> RemoveDuplicatesSet(List<Obj> items, ValueComparer valueComparer)
{
// Use HashSet to maintain table of duplicates encountered.
var result = new List<Obj>();
var set = new HashSet<Obj>(valueComparer);
for (int i = 0; i < items.Count; i++)
{
// If not duplicate, add to result.
if (!set.Contains(items[i]))
{
result.Add(items[i]);
// Record as a future duplicate.
set.Add(items[i]);
}
}
return result;
}
Есть идеи?