Какой ключ словаря экономит место String или Int32 - PullRequest
0 голосов
/ 14 апреля 2019

У меня большой набор данных, и мне нужно Dictionary ключевые записи. клавиши представляют собой 7 цифровых номеров, поэтому int16 не подходит.

Я думаю сэкономить место, поскольку int32 может использовать 32 бита.

Dictionary<int32,.....>

Тогда что, если я использую string, это сэкономит место? Поскольку моя string всегда длина как 7.

Dictionary<string,....>

1 Ответ

2 голосов
/ 14 апреля 2019

System.Int32 или int может хранить все числа до 9 цифр, а некоторые из 10 цифр, для этого требуется 4 байта. System.String или string требуется 2 байта на символ плюс 2 байта для символа 0 в конце, накладные расходы для хранения длины (4 байта) + накладные расходы для вещей, связанных с объектами, плюс сам словарь должен хранить ссылка на строку, которая в 64-битной системе имеет 8 байтов. Строка требует гораздо больше памяти и медленная обработка по сравнению с int.

См .: Сколько памяти занимает строка C #?

Используйте

Dictionary<int, TValue>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...