Словарь без значения полезной нагрузки в .Net - PullRequest
3 голосов
/ 26 января 2010

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

Обратите внимание, что это жесткий и высоко оптимизированный код, поэтому, пожалуйста, не кричите о "преждевременной оптимизации"! Предполагая сценарии, когда ЦП и ОЗУ сжимаются до предела, я хотел собрать мнения о более оптимальных решениях; предположительно что-то вроде класса Lookup будет избегать ненужного выделения памяти и, следовательно, будет немного быстрее. Есть ли такие классы или сторонние или, возможно, какой-то класс, который я пропустил в BCL?

Я понимаю, что Google выпустил код для быстрых и компактных классов словарей - возможно, там есть что-то, что можно перенести на C # /. Net?

Спасибо.

1 Ответ

6 голосов
/ 26 января 2010

Используйте класс HashSet в .NET 3.5.

HashSet<int> set = new HashSet<int>() { 1, 2, 3 };
set.Add(5);
for (int index = 0; index < 10; index++)
{
    Console.WriteLine("{0} : {1}", index, set.Contains(index));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...