У меня есть следующий код, который, кажется, не работает:
Контекст:
У меня есть два списка объектов:
* listOne имеет 100 записей
* listTwo имеет 70 записей
многие из них имеют одинаковое свойство Id (в обоих списках);
var listOneOnlyItems = listOne.Except(listTwo, new ItemComparer ());
вот сравнение
public class ItemComparer : IEqualityComparer<Item>
{
public bool Equals(Item x, Item y)
{
if (x.Id == y.Id)
return true;
return false;
}
public int GetHashCode(Item obj)
{
return obj.GetHashCode();
}
}
после того, как я запустил этот код и посмотрел на результаты
listOneOnlyItems
все еще имеет 100 записей (должно быть только 30). Кто-нибудь может мне помочь?
также, работает
IEnumerable<Item> sharedItems = listOne.Intersect(listTwo, new ItemComparer());
возвращает ноль повторных результатов в коллекции sharedItems