Я работаю над проектом, где мне нужно выполнить итерацию по набору данных и удалить записи, в которых дублируется «первичный ключ». Я попытался с помощьюПроизводительность при проверке дубликатов
List<int>
и
Dictionary<int, bool>
С словарем я нашел немного более высокую производительность, даже если я никогда не нужен булев помечен с каждой записью. Я ожидаю, что это связано с тем, что List позволяет индексировать доступ, а словарь не работает. Мне было интересно, есть ли лучшее решение этой проблемы. Мне не нужно снова обращаться к записям, мне нужно только отслеживать, какие «первичные ключи» я видел, и убедиться, что я выполняю только дополнительную работу над записями с новым первичным ключом. Я использую C# и .NET 2.0. И у меня нет контроля над фиксацией входных данных, чтобы удалить дубликаты из источника (к сожалению!). И поэтому вы можете почувствовать масштабирование, в целом я проверяю дубликаты около 1 000 000 раз в приложении, но в подмножествах не более 64 000, которые должны быть уникальными.
HashSet - это именно то, что я хочу, к сожалению, мы ограничены .net 2.0, однако, используя ссылку @Rob о создании Linq в .net 2.0, я пытаюсь заставить HashSet работать в нашей среде. – 2008-09-19 11:12:43