将字典转换为列表

Lin*_*ela -2 c# linq dictionary list

如何将此字典转换为列表

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

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

我期待这个输出

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" }
}
Run Code Online (Sandbox Code Playgroud)

我试过这个但是无法获取嵌套集合的值:

dict.Select(c => new { id=c.Key, value= c.Value })
Run Code Online (Sandbox Code Playgroud)

Gil*_*een 7

使用SelectMany返回每个多个项目KeyValuePair.然后,对于每个pair使用SelectValue:

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

结果:

在此输入图像描述