Как вытащить данные из Dictionary, который внутри Dictionary?

Есть такой тип Dictionary<string, Dictionary<string, List<string>>>.

Как вытянуть данные из внутреннего Dictionary<string, List<string>>?


Ответы (1 шт):

Автор решения: aepot

Любую коллекцию можно проитерировать с помощью цикла.

Dictionary<string, Dictionary<string, List<string>>> dict = ...;

foreach (var pair in dict)
{
    Console.WriteLine(pair.Key);
    foreach (var innerPair in pair.Value)
    {
        Console.WriteLine(innerPair.Key);
        foreach (string listItem in innerPair.Value)
        {
            Console.WriteLine(listItem);
        }
    }
}

Если надо достать по ключу и проитерировать внутренний словарь, то вот так:

foreach (var pair in dict["key1"])
{
    Console.WriteLine(pair.Key);
    foreach (string listItem in pair.Value)
    {
        Console.WriteLine(listItem);
    }
}

Если надо проитерировать внутренний список конкретного вложенного словаря, то вот так:

foreach (string listItem in dict["key1"]["key2"])
{
    Console.WriteLine(listItem);
}

Если надо получить конкретный элемент конкретного внутреннего списка, то как-то так:

string item = dict["key1"]["key2"][3];
→ Ссылка