Как найти значения в словаре в VB

У меня есть этот диктофон:

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

заранее спасибо

3 ответа

Решение

Ваш синтаксис кажется правильным

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

какую ошибку вы получаете?

Просто передайте значение в словарь, и он вернет вам ключевое значение, если ваш словарь выглядит следующим образом:

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

На самом деле я почти уверен, что этот код вызовет исключение, потому что ключ не был найден в словаре. «Single» - это значение, а не ключ в этой ситуации, поэтому индексация значения, не являющегося действительным ключом, вызовет исключение «ключ не найден».

Мне действительно нужна эта способность (по какой-то причине у API, который я использую, есть словарь, в котором значение, которое мне нужно получить, является ключом, и единственный способ найти его - по понятному имени, которое они связали с ключом). Может быть, есть способ получше, но мое неуклюжее решение заключалось в том, чтобы перебрать все словарные записи и найти нужное значение, а затем получить связанный с ним ключ. Пока я не нашел способа найти ключ, указав значение, отличное от цикла, или используя Find() в списке, но, возможно, я просто что-то упускаю.

Другие вопросы по тегам