G'day, я пытаюсь найти разницу между данными, которые у меня есть на сервере SQL, и данными, которые я хранил локально.Я храню локальные данные и данные SQL в двух отдельных HashSets.
Теперь я могу подтвердить, что разница между хэш-наборами составляет всего 1 пункт, но когда я запускаю SQLHashSet.ExceptWith(LocalHashSet)
, это дает мне полный Hashset вместо простоэто одна дополнительная запись.
Я использую этот пользовательский тип:
class Client : IEquatable<Client>
{
public string ID { get; set; }
public override int GetHashCode()
{
return StringComparer.InvariantCulture.GetHashCode(this.ID);
}
public override bool Equals(object obj)
{
return Equals(obj as Client);
}
public bool Equals(Client obj)
{
return obj != null && StringComparer.InvariantCulture.Equals(ID, obj.ID);
}
}
Неужели мое понимание того, как ExceptWith работает неправильно, или мне нужно разработать свой собственный способ сравнения списков?