Я должен использовать Словарь для наборов с 10 объектами или меньше или являюсь там лучшей альтернативой?

У меня есть список объектов, и я должен найти объект как можно быстрее (он - свойство имени). Какую структуру данных я должен использовать? Я знаю, что могу использовать Словарь, но там привычка когда-либо быть больше чем 10 объектами в списке, и если я помню правильно словарь, реализована как массив, если набор содержит 10 объектов или меньше.

Спасибо.

13
задан Mikael Sundberg 10 March 2010 в 18:42
поделиться

4 ответа

MSDN рекомендует ListDictionary для коллекций с 10 или менее элементами:

Это простая реализация IDictionary с использованием односвязного списка. Он меньше и быстрее, чем Hashtable, если количество элементов 10 или меньше. Это не следует использовать, если производительность важна для большого количества элементов.

11
ответ дан 1 December 2019 в 23:31
поделиться

Вы можете рассмотреть System.Collections.Specialized.ListDictionary , если вы уверены, что там будет меньше десяти элементов.

Также рассмотрите System.Collections.Specialized.HybridDictionary , который переключает поведение (с небольшими накладными расходами), если размер превышает пороговое значение, что удобно, если ваше предположение неверно.

5
ответ дан 1 December 2019 в 23:31
поделиться

Поскольку вам нужен максимально быстрый поиск по свойству, вам следует использовать Dictionary . Размер не повредит, если вы хотите быстро найти. Дело не в том, что Dictionary всего из 10 или менее элементов занимает тонну памяти. Dictionary имеет конструктор, который принимает int для установки емкости.

2
ответ дан 1 December 2019 в 23:31
поделиться

Почему бы просто не использовать хеш-таблицу? Он находится в пространстве имен System.Collections.

0
ответ дан 1 December 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: