Hej,
W jednym miejscu swojego kodu mam coś takiego:
List<string> _added = changed.AffectedMIDs.Except(orginal.AffectedMIDs).ToList();
orginal.AffectedMIDs
i changed.AffectedMIDs
to List<string>
i działa to tak jak powinno. Porównuje mi dwie listy i w _added
znajdują się tylko elementy które znajdują się w changed.AffectedMIDs
ale nie ma ich w orginal.AffectedMIDs
.
Coś bardzo podobnego próbuje zrobić później, niestety zamiast List<string>
mam List<T>
. Except
może jako drugi argument przyjąć IEqualityComparer
. Ostatecznie wylądowałem z czymś takim:
List<FollowerItem> _followers = orginal.Followers.Except(changed.Followers, new FollowerComperer()).ToList<FollowerItem>();
public class FollowerComperer : IEqualityComparer<FollowerItem>
{
public bool Equals(FollowerItem x, FollowerItem y)
{
return x.Email == y.Email;
}
public int GetHashCode(FollowerItem obj)
{
return obj.GetHashCode();
}
}
Niestety nie działa. Próbowałem wrzucić breakpointa w Equals, ale niestety tez mi tam nie wskakuje ale to chyba normalne, bo nie można lambdy tak debugować.
Jakieś pomysły?