如何在hashset中按键搜索?

时间:2014-04-10 23:33:36

标签: vb.net

我想要一个包含一堆独特字符串的集合。 Hashset似乎是最好的选择,因为它可以删除重复项并快速完成。

但是我怎样才能在哈希集中找到一个项目?我可以循环遍历所有元素但不会失败成为一个hashset的目的吗?基本上我只想要一个字典,其中键是值。

2 个答案:

答案 0 :(得分:0)

Hashsets不用于搜索。它们用于整体收集。您可以将其用于使用的数学集:创建联合,交叉或检查重复等。

字典和哈希集在内部实现中类似,因为它们基于哈希表。但是集合没有密钥,因为它们不允许查找元素。你必须使用字典。如果你想问一个元素的集合,你必须通过它们全部枚举。

同样,您不应使用队列,堆栈或链接列表来查找元素。

要在字典中只使用字符串,您可以使用它:

IDictionary<string, string dictionary =
    new Dictionary<string, string>();
dictionary.Add("Foo", "Foo");
dictionary.Add("Bar", "Bar");
string stringThatILookFor = null;
if (dictionary.TryGetValue("Bar", out stringThatILookFor))
{
    // Use stringThatILookFor, which has a value Bar
 }

答案 1 :(得分:0)

您需要使用Contains

Dim hsStrings As HashSet(Of String) = {"a", "b", "c"}
If hsStrings.Contains("a") Then 'do smth