Использование словаря вместе с KeyPairValue - PullRequest
2 голосов
/ 18 августа 2011

У меня есть словарь, объявленный следующим образом:

public:    
     static Dictionary<String ^, List<String ^>^> ^ language_string_table;

Таким образом, используя для каждого ключа цикла и значения загружаются в тот (который написан кем-то еще). Теперь мне нужно, используя одно и то же для каждого цикла, я могу получить доступ к «ключу» Словаря самостоятельно, пожалуйста, помогите мне, как получить доступ к «значению» Словаря.

Ответы [ 3 ]

4 голосов
/ 30 августа 2012
for each(KeyValuePair<String^, List<String^>^ kvp in dictionary)
{
    String^ key = kvp->Key;
    List<String^>^ value = kvp->Value;
}
1 голос
/ 18 августа 2011

Вы запрашиваете самое основное использование интерфейса IEnumerator.
Ваш ответ:

Dictionary<String ^, List<String ^>^> ^ language_string_table;

Dictionary<String ^, List<String ^>^>::Enumerator etor = language_string_table->GetEnumerator();
while(etor.MoveNext())
{
    String^ ss = etor.Current.Key;
    List<String ^>^> ^ list = etor.Current.Value;
}
//if you just want to get keys or values only
Dictionary<String ^, List<String ^>^>::KeyCollection::Enumerator keytor = language_string_table->Keys->GetEnumerator();

while(etor.MoveNext())
{
    String^ ss = keytor.Current;
}

Но я настоятельно рекомендую вам изучить концепцию итератора.

Также вот для каждого использования в C ++ / CLI.

0 голосов
/ 18 августа 2011

Ваш вопрос не очень понятен.

Если вы хотите выполнить цикл только по клавишам, используйте language_string_table->Keys. Если вы хотите зациклить только значения, используйте language_string_table->Values. Если вы хотите получить значение для ключа, используйте language_string_table->default[key].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...