我想知道在C#中构建一个唯一的对象列表是否会更快地遵循一种或另一种模式:
选项1
选项2
答案 0 :(得分:17)
您可以使用HashSet<T>
:
HashSet类提供高性能的集合操作。一套 是一个不包含重复元素的集合,其中包含 元素没有特别的顺序。
您可以通过构造函数提供自定义IEqualityComparer<T>
。
答案 1 :(得分:3)
这是其中之一“我应该用鞋子还是用砖来敲钉子”。您应该为作业使用适当的数据结构,根据您“构建唯一对象列表”的要求,HashSet<T>
类满足。
如果您需要列表格式的项目,您可以随时在集合上调用ToList()
。
答案 2 :(得分:0)
如果您担心查找唯一项目的效果,请使用Dictionary<TKey, TVale>
。此外,字典需要唯一的键,因此您永远不会有重复。