Вам необходимо переопределить метод Equals объекта. Вы можете найти некоторые рекомендации на веб-сайте Microsoft.
Я предоставил образец ниже:
public override bool Equals(System.Object obj)
{
if (obj != null && obj is MyClass)
{
MyClass obj2 = (MyClass)obj;
return (obj2.ID == this.ID);
}
}
Если вы не переопределите этот метод, любой вид сортировки / пересечения / сравнения будет сравнивать объекты на основе их ссылки; поэтому, если два объекта ссылаются на одно и то же место в памяти, они считаются «равными».