我已经宣布了这样的字典:
Dictionary<string, KeyValuePair<string, string>> dc = new Dictionary<string, KeyValuePair<string, string>>();
现在我该如何循环呢?我想要类似下面这样的东西,所以我创建了那个词典:
NAME1 oldValue1 newValue1
NAME2 oldValue2 newValue2
...
答案 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);
}