c# - 检查重复项时的性能

标签 c# performance collections .net-2.0

我一直在做一个项目,我需要遍历数据集合并删除“主键”重复的条目。我试过使用一个

List<int>

Dictionary<int, bool>

我发现字典的性能稍好一些,尽管我从不需要为每个条目标记 bool 值。我的期望是这是因为 List 允许索引访问而 Dictionary 不允许。我想知道的是,是否有更好的解决方案来解决这个问题。我不需要再次访问条目,我只需要跟踪我看到的“主键”并确保我只对具有新主键的条目执行添加工作。我正在使用 C# 和 .NET 2.0。而且我无法控制修复输入数据以从源中删除重复项(不幸的是!)。因此,您可以感受到缩放,总的来说,我在应用程序中检查重复项大约 1,000,000 次,但在不超过大约 64,000 次的子集中需要唯一。

最佳答案

他们在 .NET 3.5 中添加了 HashSet 类。但我想它会与词典相提并论。如果您的元素少于 100 个,列表的性能可能会更好。

关于c# - 检查重复项时的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/91933/

相关文章:

c# - XML 反序列化 - 不需要 xmlns

javascript - 为什么 CSS 动画和过渡会被 JavaScript 阻止?

java - 如何在 Java 中使用 Collections.sort()?

Java:与 HashMap 一起使用的键的良好候选者

c# - 以固定间隔触发事件

c# - AutoFac 和 CustomPrincipal

c# - 为什么我的客户端/服务器代码不能在我的本地机器之外工作?

java - Spring - 添加一个低优先级的多线程服务(不影响生产性能)

php - 帮助提高这个 youtube 风格的 url 生成器的效率

c# - LINQ:查询集合是否包含另一个集合中的任何元素