将字典转换为列表

时间:2017-09-20 06:31:53

标签: c# list linq dictionary

如何将此词典转换为列表

var dict = new Dictionary<string, List<string>>();

dict.Add("1", new List<string>() { "a", "b" });
dict.Add("2", new List<string>() { "a", "c" });

我期待这个输出

List<dynamic> = new List<dynamic>() 
{
    new { id = "1", value = "a" }
    new { id = "1", value = "a" }
    new { id = "2", value = "a" }
    new { id = "2", value = "a" }
}

我已尝试过此功能但无法获取嵌套集合的值:

dict.Select(c => new { id=c.Key, value= c.Value })

1 个答案:

答案 0 :(得分:7)

使用SelectMany为每个KeyValuePair返回多个项目。然后对pair上的每个Select使用Value

var result = dict.SelectMany(pair => pair.Value.Select(item => 
    new { id = pair.Key, value = item }));

结果:

enter image description here