Я использую Hashtable (ссылка на mscorlib.dll).Я заполняю его данными, я могу получить любой элемент (при условии, что я конвертирую тип запроса в точно такой же тип, который хранится в хеш-таблице) .ContainsValue / Key - все это работает.Но я не могу перебрать его через цикл For Each.Я перепробовал все методы, которые мог найти в Интернете (для каждого элемента ..., где элементом является DictionaryEntry, через GetEnumerator), но ни один из них не работает - я могу пролистать таблицу через перечислитель, но не могу добраться до ключани значение того, где расположен итератор.Что я делаю неправильно?Я решил это временно, установив ключи для чисел и итерируя по этим числам, но это не сработает, потому что, наконец, будет одно и то же число дважды ...
PS: я не могу использовать словарьвместо Hashtable, потому что мне нужны и ContainsKey, и ContainsValue, а также возможность извлекать элементы по ключам или по значениям.
РЕДАКТИРОВАТЬ: мой текущий код (то, что я ищу, это заменить цикл «For i»,поэтому мне не нужны ключи, чтобы быть числами, которые я уже знаю)
For i = 1 To UBound(rands)
chopped_yes = Split(ThisWorkbook.Worksheets(1).Range("Z" & rands(i)))
chopped_no = Split(ThisWorkbook.Worksheets(1).Range("AA" & rands(i)))
chopped_any = Split(ThisWorkbook.Worksheets(1).Range("AB" & rands(i)))
For Each part In chopped_yes
If rules_yes.ContainsValue(cscs.item(CLng(rands(i)))) Then
validcsc = 0
GoTo WriteIt
End If
Next part
For Each part In chopped_no
If rules_no.ContainsValue(cscs.item(CLng(rands(i)))) Then
validcsc = 0
GoTo WriteIt
End If
Next part
For Each part In chopped_any
pepa = cscs.item(CLng(rands(i)))
chopped_pepa = Split(pepa, "=")
If rules_any.ContainsValue(CStr(chopped_pepa(0))) Then
validcsc = 0
GoTo WriteIt
End If
Next part
Next i
Что делает код:
Хэш-таблица cscs содержит пару ключевое слово / option_value, некоторые ключевые слова конфликтуют с другими, hashtables rules_any / yes / no содержат ключевые слова, которые конфликтуют, если проверено одно из ключевых слов = YES / NO / SOMETHING и для validcsc задано значение 0 (или недопустимая комбинация ключевых слов).
rands - массивуникальные числа - проблема в том, что если существует более одного конфликтующего ключевого слова, то у меня нет номера для ключа, который я узнаю позже и использую его для итерации