嵌套foreach的Lambda表达式

时间:2016-03-25 08:58:19

标签: c# linq foreach lambda

如何为以下嵌套的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);
   }
}

1 个答案:

答案 0 :(得分:5)

dto.Items.SelectMany(item => item.Children).Concat(dto.Items);

应该这样做。

编辑:

正如xanatos所提到的,如果你想让你的循环产生相同的顺序,你应该使用它:

dto.Items.SelectMany(item => new[] { item }.Concat(item.Children))