2 27.1K

Equals() и как работает сравнение типов в C#

Комментарии:

Пожалуйста авторизируйтесь, чтобы получить возможность оставлять комментарии
mcfly, вы правы в том что его можно использовать в других LINQ выражениях, о чем я упоминал в статье, но тк статья сосредоточена на Equals и как сравнивать типы, то пример в этом ключе рассматривался.
В коде с IEqualityComparer написана чушь. Работает IEqualityComparer как-то так : public class IntEqualityComparer : IEqualityComparer<int> { public bool Equals(int x, int y) { return x == y; } public int GetHashCode([DisallowNull] int obj) { return obj.GetHashCode(); } } public void Main() { int[] vals = { 1, 3, 1, 4, 3, 5, 12, 4, 4, 4 }; Console.WriteLine(string.Join(", ", vals.Distinct(new IntEqualityComparer()))); } на выходе будет : 1, 3, 4, 5, 12 Т.е. сам класс, реализующий IEqualityComparer можно подкидывать в разные Linq выражения (Sort, Distinct и т.д.) и прочие места, где требуется IEqualityComparer и сравниваться будет так, как реализовано в вашем классе.