C# 值为列表时如何从字典中获取键、值

C# 值为列表时如何从字典中获取键、值,c#,dictionary,key,keyvaluepair,C#,Dictionary,Key,Keyvaluepair,基本上我有一个字典,其中有一个键,然后值是一个包含字符串的列表。。比如说 {"key1", list1} list1 = [Value 1 Value2, Value3] 我有多个键,因此值有列表。 我想显示它,以便它显示 Key1: Value1 Key1: Value2 Key1: Value3 所以我希望能够显示键和值。但我不确定如何做到这一点 foreach (var value in FoodCategory_Item.Values) { foreach(var item

基本上我有一个字典,其中有一个键,然后值是一个包含字符串的列表。。比如说

{"key1", list1}
list1 = [Value 1 Value2, Value3]
我有多个键,因此值有列表。 我想显示它,以便它显示

Key1: Value1
Key1: Value2
Key1: Value3
所以我希望能够显示键和值。但我不确定如何做到这一点

foreach (var value in FoodCategory_Item.Values)
{
    foreach(var item in value)
    {
        Console.WriteLine("Value of the Dictionary Item is: {0}", item);
    }
}
这就是我到目前为止所做的,就是迭代这些值,我知道如何做,但我不确定如何获得其中的关键值,因为它将首先迭代所有值,然后迭代关键项。

这应该可以:

foreach (KeyValuePair<string, List<string>> kvp in FoodCategory_Item)
{
    foreach (string item in kvp.Value)
    {
        Console.WriteLine ("{0}: {1}", kvp.Key, item);
    }
}
foreach(FoodCategory_项中的KeyValuePair kvp)
{
foreach(kvp.Value中的字符串项)
{
Console.WriteLine(“{0}:{1}”,kvp.Key,item);
}
}

实现
IEnumerable
,因此您可以直接对其进行迭代。

字典
是可枚举的,因此迭代:

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);
     }
}
如果查看,您会注意到它实现了接口

IEnumerable<KeyValuePair<TKey, TValue>>
IEnumerable
因此,您可以执行以下操作:

foreach(KeyValuePair<TKeyType, TValueType> kvp in dictionary)
{
    foreach(var item in kvp.Value)
    {
        Console.WriteLine("{0}: {1}", kvp.Key, item);
    }
}
foreach(字典中的KeyValuePair kvp)
{
foreach(kvp.Value中的变量项)
{
Console.WriteLine(“{0}:{1}”,kvp.Key,item);
}
}

在这里给出的示例代码中,将TKeyType替换为字典中使用的键的实际类型,并将TValueType替换为字典值的列表类型。

如果您也需要键,不要迭代
:)只需迭代字典(每个元素都是键值对),然后在该字典中,迭代该键的所有值。噢,哇,非常感谢!我想,因为我在迭代键,所以键不会停留,它会移动到下一个键。真的很感激@用户3827175:当然可以,很乐意帮忙