使用Dictionary和KeyPairValue

时间:2011-08-18 11:56:32

标签: .net dictionary c++-cli generics

我有一个字典声明如下:

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

所以通过使用每个循环键并将值加载到其中(由其他人写入)。现在我需要通过对每个循环使用相同的内容我能够单独访问Dictionary的“key”,请帮助我如何访问Dictionary的“value”。

3 个答案:

答案 0 :(得分:4)

for each(KeyValuePair<String^, List<String^>^ kvp in dictionary)
{
    String^ key = kvp->Key;
    List<String^>^ value = kvp->Value;
}

答案 1 :(得分:1)

您正在询问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中的for each用法。

答案 2 :(得分:0)

你的问题不是很清楚。

如果您只想在键上循环,请使用language_string_table->Keys。如果您只想循环使用值,请使用language_string_table->Values。如果您想获取密钥的值,请使用language_string_table->default[key]