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

Пользовательский equality comparer в C#

Интерфейс IEqualityComparer<T> задаёт, когда два объекта считаются одинаковыми и какой хеш у каждого. Его передают в конструктор HashSet<T> и Dictionary<TKey, TValue>.

Готовый StringComparer.OrdinalIgnoreCase сравнивает строки без учёта регистра и согласует хеш-коды для такого же правила.

Добавим ключ и проверим поиск другим регистром. Значение true показывает, что comparer применился и при добавлении, и при поиске:

StringComparer ignoreCase = StringComparer.OrdinalIgnoreCase; HashSet<string> set = new HashSet<string>(ignoreCase); set.Add("Key"); Console.WriteLine(set.Contains("key"));

Добавьте название "Bridge" в набор без учёта регистра и проверьте, есть ли в нём "bridge". Результат выведите в консоль.

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