public void Equality_comparers_are_useful_when_using_certain_apis_such_as_linq() { var items = new[] { new ObjectWithoutEqualsOverride(1), new ObjectWithoutEqualsOverride(1), new ObjectWithoutEqualsOverride(2) }; var comparer = new ObjectWithoutEqualsOverrideComparer(); var distinctItems = items.Distinct(comparer); Assert.AreEqual(2, distinctItems.Count()); }
public void Equals_implementation_can_be_done_through_an_equality_comparer_instead_of_overriding_Equals() { var a = new ObjectWithoutEqualsOverride(1); var b = new ObjectWithoutEqualsOverride(1); var c = new ObjectWithoutEqualsOverride(2); var comparer = new ObjectWithoutEqualsOverrideComparer(); Assert.IsTrue(comparer.Equals(a, a)); Assert.IsTrue(comparer.Equals(a, b)); Assert.IsFalse(comparer.Equals(a, c)); }