我一直在研究一个项目,我需要遍历数据集合并删除“主键”重复的条目。我已经使用检查重复项时的性能
List<int>
和
Dictionary<int, bool>
随着我发现表现略好字典试过,尽管我从来没有需要布尔标记每个条目。我的期望是,这是因为List允许索引访问,而Dictionary不允许。我想知道的是,有没有更好的解决方案来解决这个问题。我不需要再次访问这些条目,我只需要跟踪我所看到的“主键”,并确保我只对具有新主键的条目执行添加工作。我正在使用C#和.NET 2.0。并且我无法控制修复输入数据以从源代码删除重复项(不幸的是!)。所以你可以有一个缩放的感觉,总的来说,我在应用程序中检查重复次数约1,000,000次,但是不超过约64,000次的子集需要是唯一的。
HashSet正是我想要的,不幸的是,我们仅限于.net 2.0,然而,使用链接@Rob关于使.net 2.0中的Linq工作,我试图让HashSet在我们的环境中工作。 – 2008-09-19 11:12:43