Хэш-карты в C# обеспечивают быстрый доступ к хранимым данным с использованием уникальных ключей. Данные хранятся в парах ключ-значение. Хэш-карты универсальны, что делает их незаменимыми в различных сценариях программирования.
По сути, хэш-карта использует хэш-функцию для преобразования ключа в индекс массива. Если два ключа создают один и тот же индекс, это называется коллизией. В C# класс Dictionary внутренне обрабатывает коллизии.
// Пример использования
Dictionary<string, int> ages = new Dictionary<string, int>();
ages.Add("Alice", 25);
ages.Add("Bob", 30);
Структуры пар значение-ключ лежат в основе большинства сценариев программирования, не только хэш-карт. Реализация хэш-карты в C# — это простой процесс благодаря Dictionary классу.
#Полезно #ХэшКарта #Dictionary
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда-нибудь приходилось делать поиск по строковому ключу в Dictionary? Проблема со строковыми ключами — это непредсказуемость регистра (vip вместо VIP и т.п.).
Да, решить вопрос можно по-разному, например через string.ToLower. Однако это можно считать моветоном. Хорошим решением данного вопроса является передача параметра StringComparer.CurrentCultureIgnoreCase в конструктор Dictionary.
По аналогии со словарём, использовать данное решение можно и в случае с HashSet. Пример реализации:
HashSet<string> statuses = new HashSet<string>(StringComparer.CurrentCultureIgnoreCase)
{
"VIP",
"Premium"
};
Console.WriteLine(statuses.Contains("VIP")); // true
Console.WriteLine(statuses.Contains("vip")); // true
#Полезно #StringComparer #Dictionary #HashSet #Array
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5