1

我有这本字典:

Dim chardict As Dictionary(Of Char, Integer) = Nothing
chardict.Add("A", 0)
chardict.Add("B", 1)

我想做以下if语句,但我有点坚持语法:

if chardict.containskey("A")
    'display the value that corrosponds to the letter "A"
    'in this case display the character 0
    [some code]
end if
4

3 回答 3

1

只需将值传递给字典,如果您的字典如下所示,它将返回一个 Key 表示:

Private Status As New Dictionary (Of String, String)
Status.Add("Y", "Married")
Status.Add("N", "Single")
Status.Add("X", "Its Complicated")

下面的代码行将返回您的密钥

Dim Key As String = Status("Single")

键 = N

于 2017-05-26T14:36:45.760 回答
0

实际上我很确定这段代码会抛出异常,因为在字典中找不到密钥。在这种情况下,“Single”是值,而不是键,因此针对不是有效键的值进行索引将引发键未找到异常。

我实际上需要这种能力(出于某种原因,我正在使用的 API 有一个字典,其中我需要获取的值是键,查找它的唯一方法是通过它们与键关联的友好名称)。也许有更好的方法,但我笨拙的解决方案是遍历所有字典条目并找到我需要的值,然后获取与之关联的键。到目前为止,我还没有找到通过提供循环以外的值或在列表中使用 Find() 来查找密钥的方法,但也许我只是遗漏了一些东西。

于 2021-09-01T21:05:08.937 回答
-1

您的语法似乎正确

If dictionary.ContainsKey("A") Then
    Do
End If

你得到什么错误?

于 2012-02-22T10:35:05.373 回答