如何遍历这本词典

时间:2011-10-05 13:59:21

标签: c#

我已经宣布了这样的字典:

Dictionary<string, KeyValuePair<string, string>> dc = new Dictionary<string, KeyValuePair<string, string>>();

现在我该如何循环呢?我想要类似下面这样的东西,所以我创建了那个词典:

NAME1 oldValue1 newValue1

NAME2 oldValue2 newValue2

...

2 个答案:

答案 0 :(得分:6)

你可以像这样循环播放

foreach (var pair in dc)
{
    string name = pair.Key;
    string oldValue = pair.Value.Key;
    string newValue = pair.Value.Value;

    // use the values 
}

但我有一种感觉,你正在使用错误的工具来完成工作。听起来像你真的需要继续定义一个适当的类来保存名称和值,然后只使用该类的List<T>

答案 1 :(得分:5)

foreach( KeyValuePair<string, string> kvp in  dc )
{
    Console.WriteLine("Key = {0}, Value = {1}",  kvp.Key, kvp.Value);
}

循环字典时,使用通用的KeyValuePair。由于您的字典包含键作为字符串,值包含字符串,因此这个字符串也将包含两个字符串。

您可以使用kvp.Key访问密钥,使用kvp.Value访问该密钥。

对于您的示例,您正在使用包含值KeyValuePair的字符串字典。 因此,您可以获得所需的精确打印:

foreach( KeyValuePair<string, KeyValuePair<string,string>> kvp in  dc )
{
    Console.WriteLine(kvp.Key + " " + kvp.Value.Key + " "+ kvp.Value.Value);
}