如何为以下嵌套的foreach循环编写lambda表达式:
var temp= new List<Items>();
foreach (var item in dto.Items)
{
temp.Add(item);
foreach (var child in item.Children)
{
temp.Add(child);
}
}
答案 0 :(得分:5)
dto.Items.SelectMany(item => item.Children).Concat(dto.Items);
应该这样做。
编辑:
正如xanatos所提到的,如果你想让你的循环产生相同的顺序,你应该使用它:
dto.Items.SelectMany(item => new[] { item }.Concat(item.Children))