我需要有能力在收藏中拥有独特的物品。
我打算使用字典,这样我就可以使用 ContainsKey 方法,但我认为这会很浪费,因为我不会使用键/值对的 Value 属性。
我遇到了HashSet<T>
这看起来很有前途。我唯一能找到但在网上找不到的东西List<T>
文档是这样的HashSet<T>
是无序的。我认为这很好,我认为这意味着它没有使用IEqualityComparer
。只要添加项目的顺序位于相同的索引位置,我认为就可以了,因为我必须进行重复检查,因此哈希集然后检查所有条目是否连续。
比较这两种类型还有什么我错过的吗?
不,重要的是HashSet<T>
没有任何排序或索引的概念 - 列表概念上有槽 0....n-1,而集合“只是一个集合”。
我认为这很好,我认为这意味着它没有使用 IEqualityComparer 进行排序。
IEqualityComparer
无论如何都不用于订购 - 它only谈论相等和哈希码。HashSet<T>
不是由以下人订购的either元素比较(例如,SortedSet<T>
is) or插入顺序。
只要添加项目的顺序处于相同的索引位置,我认为就可以了。
There is没有索引位置,并且当您迭代 aHashSet<T>
无法保证您会按照添加顺序取回它们。如果你甚至thinking关于订购,HashSet<T>
不是你想要的。
话又说回来,这一切都是also真实的Dictionary<TKey, TValue>
- 您也不应该对在那里订购做出任何假设。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)