Как можно Dictionary вывести в виде?:
key1
val1
val2
val3
key2
val1
val2
val3
Сам 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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо программно нажать на кнопку qt приложения,которое открыто без отображения окнаКак отловить кнопку для дальнейшего взаимодействия?
Итак, допустим у нас есть следующий код:
После нажатия на кнопку, должно содержимое DataGrid должно экспортироваться в XML при помощи сериализации, но происходит ошибка: