Вы можете сгладить коллекцию с помощью Linq, но это все еще цикл foreach
, но теперь более неявный.
var items = nvc.AllKeys.SelectMany(nvc.GetValues, (k, v) => new {key = k, value = v});
foreach (var item in items)
Console.WriteLine("{0} {1}", item.key, item.value);
Первая строка преобразует вложенную коллекцию в (не вложенную) коллекцию анонимных объектов со свойствами key и value .
Это выглядит так, как будто теперь это ключ сопоставления -> значение вместо key -> коллекция значений . Пример данных:
До:
Тест -> [Val],
Test2 -> [Val1, Val1, Val2],
Test3 -> [Val1],
Test4 -> [Val4]
После:
Тест -> Val,
Test2 -> Val1,
Test2 -> Val1,
Test2 -> Val2,
Test3 -> Val1,
Test4 -> Val4