你如何在linq中实现以下功能?我觉得应该有一个 Linq 替代品。
var foods = new Dictionary<string, List<string>>();
foods.Add("Cake", new List<string>() { "Sponge", "Gateux", "Tart" });
foods.Add("Pie", new List<string>() { "Mud", "Apple" });
foods.Add("Roll", new List<string>() { "Sausage" });
var result = new List<Tuple<string, string>>();
foreach (var food in foods)
{
foreach (var detail in food.Value)
{
result.Add(new Tuple<string, string>(food.Key, detail));
}
}
ie
cake <sponge, gateux>
pie <apple>
to
cake, sponge
cake, gateux
pie, apple
谢谢
最佳答案
您可以使用 SelectMany
扩展方法:
var result= foods.SelectMany(f=>f.Value.Select(s=>new Tuple<string, string>(f.Key, s)))
.ToList();
关于c# - 如何在 linq 中展平字典 <string,List<string>> 并将键保留在结果中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34927634/