我想要一个包含一堆独特字符串的集合。 Hashset似乎是最好的选择,因为它可以删除重复项并快速完成。
但是我怎样才能在哈希集中找到一个项目?我可以循环遍历所有元素但不会失败成为一个hashset的目的吗?基本上我只想要一个字典,其中键是值。
答案 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