所以基本上我有一个字典,我有一个键,然后值是一个包含字符串的列表..所以例如..
{"key1", list1}
list1 = [Value 1 Value2, Value3]
我有多个键,因此有列表的值。 我想显示它以便显示
Key1: Value1
Key1: Value2
Key1: Value3
所以我希望能够显示Key和值。但我不确定如何做到这一点。
foreach (var value in FoodCategory_Item.Values)
{
foreach(var item in value)
{
Console.WriteLine("Value of the Dictionary Item is: {0}", item);
}
}
这就是我到目前为止所做的,即迭代值,我知道该怎么做,但我不知道如何在那里获取键值,因为它将首先迭代所有值,然后遍历关键项..
答案 0 :(得分:2)
这应该有效:
foreach (KeyValuePair<string, List<string>> kvp in FoodCategory_Item)
{
foreach (string item in kvp.Value)
{
Console.WriteLine ("{0}: {1}", kvp.Key, item);
}
}
Dictionary
实现IEnumerable<KeyValuePair<TKey, TValue>>
,因此您可以直接迭代它。
答案 1 :(得分:2)
如果查看documentation for Dictionary,您会注意到它实现了接口
IEnumerable<KeyValuePair<TKey, TValue>>
因此,您可以执行以下操作:
foreach(KeyValuePair<TKeyType, TValueType> kvp in dictionary)
{
foreach(var item in kvp.Value)
{
Console.WriteLine("{0}: {1}", kvp.Key, item);
}
}
在此处给出的示例代码中,将 TKeyType 替换为字典中使用的键的实际类型,并将 TValueType 替换为用于值的列表类型字典。
答案 2 :(得分:1)
Dictionary
是可枚举的,所以迭代:
foreach (var kvp in FoodCategory_Item)
{
foreach(var item in kvp.Value)
{
Console.WriteLine("Value of the Dictionary Key {0} is: {1}", kvp.Key ,item);
}
}