我遇到过需要跟踪是否已处理特定值的情况。在这些情况下,我使用 Dictionary(Of TKey, TValue)
来跟踪我处理过的值。基本上,在处理每个值时,我将处理后的值作为键插入到字典中。当我想查看是否已处理该值时,我使用 ContainsKey
方法查看集合中是否存在该值。
这很好用,但我必须在键值对的值端插入一些东西。我只想使用 List(Of T)
但我想要 Dictionary 提供的哈希表查找的性能。 .Net中有没有更适合这个目的的数据采集?
最佳答案
我会建议 HashSet<T>
.如果您只需要知道 key 已被使用,您可以只输入 key 。
其实也很简单:
if (myHashSet.Add(key))
{
// item wasn't in the hash set, so process it.
}
Add
就像“如果不存在则添加”。它返回 true
如果添加了该项目。它返回 false
如果该项目已经在集合中。
或者,您可以使用 Contains
测试,然后 Add
添加。
关于c# - 替代字典进行快速键查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087713/