c# - 替代字典进行快速键查找?

标签 c# .net vb.net data-structures

我遇到过需要跟踪是否已处理特定值的情况。在这些情况下,我使用 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/

相关文章:

c# - lambda 声明

c# - .Net 4.6.2 上的 RSACryptoServiceProvider "Key does not exist"

.net - 如何防止控件更新线程超时?

mysql - 如何更快地加载 vb.net Combobox

c# - DataGridView.Editmode = EditOnEnter。如何选择要删除的行?

c# - .NET Selenium NoSuchElementException; WebDriverWait.Until() 不起作用

c# - 我不明白如何使用 SendMessage 或 PostMessage 调用

c# - 当数据已在数据库中时 EF 种子不起作用

c# - Entity Framework 的 SQL Server 默认连接超时是多少?

VB.Net 将多个 pdf 合并为一个并导出