public static void Main()
var myClass = new MyClass();
var myClassDuplicate = new MyClass();
var allInstances = new [] { myClass, myClassDuplicate };
var deduplicatedInstances = allInstances.Distinct();
Console.WriteLine(deduplicatedInstances.Count());
public string FirstMember { get; } = "foo";
public string SecondMember { get; } = "bar";
public override bool Equals(object obj) {
if (obj is MyClass otherClass)
return this.FirstMember == otherClass.FirstMember && this.SecondMember == otherClass.SecondMember;
public override int GetHashCode()
return this.FirstMember.GetHashCode() ^ this.SecondMember.GetHashCode();