C # создание хеш-таблицы фиксированного размера - PullRequest
3 голосов
/ 26 января 2010

Я хочу иметь возможность создавать хэш-карту фиксированного размера, скажем, 100 сегментов, и если мне нужно хранить более 100 элементов, тогда просто придется столкновения и перезапись. Класс hashtable имеет свойство IsFixedSize, однако он доступен только для чтения.

Думаю ли я об этом совершенно неправильно или есть решение для этого?

1 Ответ

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

Коллекции в .NET Framework не допускают тонкой настройки. Хотя вы можете найти один достаточно эффективный для ваших нужд. Попробуйте некоторые жизнеспособные, прежде чем оптимизировать.

Если вы не катите свой собственный, то вы можете найти стороннюю альтернативу, которая имеет более детальный контроль. Например, см. Универсальная библиотека коллекции C5. для C # и CLI в качестве возможного запуска. Проверьте различные классы Hash * на их странице документации .

Если вы решите свернуть свой собственный, вам нужно будет внедрить некоторые из стандартных интерфейсов для коллекций и / или списков, перечислений и т. Д., Чтобы они работали, как ожидается, с C # foreach и языком. и .NET функции.

Вы также можете использовать эффективную реализацию C ++, если она у вас есть и есть способы использовать ее в C # /. NET. Это может занять некоторое время, но на SO есть ответы о том, как этого добиться.

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