Самая эффективная структура данных в памяти для доступа к словарю только для чтения.C#

Место общения программистов C#
Anonymous
Самая эффективная структура данных в памяти для доступа к словарю только для чтения.

Сообщение Anonymous »

В C# у меня есть некоторые статические данные, которые можно поместить в Dictionary, где T — некоторый ссылочный тип. Веб-приложению необходимо инициализировать его только один раз, статически (он не меняется).

Поскольку мне не нужно беспокоиться о производительности вставки или удаления, что какую структуру данных лучше всего использовать (или мне следует создать свою собственную)? Вероятно, я ищу около 100 000 записей, расположенных довольно равномерно.

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

Подозреваю, но не нашел Я подтвердил, что диапазон этих ключей может составлять 0–400 000. Если бы это было так, как бы изменились рекомендации? (У меня есть мысль, которую я опубликую в качестве возможного ответа).



Может быть, я мог бы:
  • Один раз просмотрите данные и выберите самый высокий ключ
  • Выделите массив с размером самого старшего ключа + 1.
  • Сделайте второй проход и сохраните данные в массиве.
Будет ли это быть лучше или хуже, чем HashTable/Dictionary с разумным коэффициентом загрузки?

Подробнее здесь: https://stackoverflow.com/questions/857 ... ary-access

Вернуться в «C#»