Dictionary in C# [закрыт]

140
27 ноября 2018, 04:20

Как можно Dictionary вывести в виде?:

key1
   val1
   val2
   val3
key2
   val1
   val2
   val3
Answer 1

Сам Dictionary подразумевает хранение данных в виде Key=Value, где один Key содержит только один Value. Но, благо Value у нас может содержать почти любой объект, а это значит, что мы без труда можем добавлять туда коллекции.

Вот пример простейшего словаря с массивом:

Dictionary<string, string[]> dictionary = new Dictionary<string, string[]>
{
    ["key1"] = new[]
    {
        "val1",
        "val2",
        "val3",
    },
    ["key2"] = new[]
    {
        "val1",
        "val2",
        "val3",
    },
};

Если надо добавить что то, то мы смело можем сделать следующее:

dictionary.Add("key3", new []{"val1", "val2"});

Изменение значений, самое простое:

dictionary["key2"][0] = "val11";

Ну и вывод того, что вы хотите:

foreach (var item in dictionary)
{
    Console.WriteLine($"{item.Key}");
    foreach (var val in item.Value)
    {
        Console.WriteLine("   " + val);
    }
}

Ну или можем извратиться и сделать вывод через LINQ:

var result = dictionary.Aggregate(new StringBuilder(),
    (sb, kvp) => sb.AppendLine(kvp.Key).AppendLine(string.Join("\n", kvp.Value.Select(x => $"   {x}"))),
    builder => builder.ToString());
Console.Write(result);

Результат:

key1
   val1
   val2
   val3
key2
   val1
   val2
   val3
READ ALSO
Как отловить контролы qt приложения?

Как отловить контролы qt приложения?

Необходимо программно нажать на кнопку qt приложения,которое открыто без отображения окнаКак отловить кнопку для дальнейшего взаимодействия?

143
Можно ли передать тип переменной в универсальный метод? (C#)

Можно ли передать тип переменной в универсальный метод? (C#)

Итак, допустим у нас есть следующий код:

174
Ошибка при сериализации DataGrid

Ошибка при сериализации DataGrid

После нажатия на кнопку, должно содержимое DataGrid должно экспортироваться в XML при помощи сериализации, но происходит ошибка:

156