Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpEqInr 92 of 509 menu
◀ ▶

Сравнение и равенство в C#

Сортировка спрашивает, какой из двух объектов раньше. Словарь и множество спрашивают, тот ли это уже известный объект. Это разные вопросы. Порядок может сказать, что один меньше другого, а равенство - что для коллекции они всё же один и тот же ключ.

Правила нельзя задавать вразнобой. Если два объекта равны, их хеш-коды тоже должны совпадать. Хеш-код - это число, по которому словарь выбирает ячейку. Если коды разные, равные объекты попадут в разные ячейки и пара не найдётся. Если сравнение считает объекты равными по порядку, равенство не должно считать их разными.

Для чисел и строк правила уже есть. Для своего класса их задают в самом типе: что считать одинаковым, что считать большим и какой хеш-код из этого следует. Раздел про то, как эти ответы согласовать.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить