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

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

Сообщение Anonymous »

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

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

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

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



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

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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