blockquote>
- Общее количество элементов меньше 500
- Вставка выполняется только один раз
Сохранение массива фиксированного размера (500) пар ключ-значение плюс «допустимое количество элементов», если фактический размер известен только во время выполнения; заполнить его данными и отсортировать; тогда вы можете просто выполнить бинарный поиск.
Учитывая, что элементов немного, в зависимости от конкретного процессора может быть даже удобнее просто выполнять линейный поиск (возможно, сначала сохраняя наиболее часто используемые элементы, если у вас есть подсказки о наиболее часто просматриваемых значениях) ,
У меня просто была та же проблема, и я нашел решение. Для нашего приложения это был вызов к Системе. Поточная обработка. WaitHandle. WaitOne (Int32), который получил нас в проблеме. Для получения дополнительной информации о том, как ссылки на API, которые были представлены в обслуживании выпуски пакета, могут просочиться в Ваш код без Visual Studio, замечающей, см. сообщение Krzysztof Cwalina.
Хорошие новости - то, что, как упомянутый Marc является своим ответом, FxCop имеет новое правило, которое обнаруживает эти утечки. Плохие новости - то, что правило нарушено в FxCop 1.36 при предназначении для Платформы.NET 3.5. Однако David Kean описывает, как отредактировать несколько конфигурационных XML-файлов для решения проблемы. Я следовал инструкциям, и FxCop теперь обнаруживает мои ссылки на пакет обновления API.
Как насчет этого? (мультипредназначающиеся правила для FxCop)
Можно использовать код, который, как находят здесь, обнаружил установленные Платформы.NET.
Существует другая опция, которую я не попробовал. В документации Visual Studio говорится, что можно заставить установщик ClickOnce конкретно предназначаться для.NET 3.5SP1 платформа. Перейдите по ссылке и поиску "Предназначения для Версии 3.5 SP1 Платформы.NET". По существу это говорит, что выполнение любого следующего вынудит установщик установить 3.5SP1:
представьте Fx35RegistryKey в виде строки = "Платформа HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Setup\NDP\v3.5"; возразите Fx35ServicePack = Реестр. GetValue (Fx35RegistryKey, "SP", пустой указатель);
если (Fx35ServicePack == пустой указатель || (международный) Fx35ServicePack <1) выдают новое Исключение (" Платформа.NET требуются, 3,5 SP1. ");