从父[]中检索所有子项

时间:2010-08-06 19:21:29

标签: c# linq

鉴于此课程:

public class Parent
{
  public Child[] Children {get;set;}
}

这个数组:

Parent[] parents;

如何使用Linq或其他方法从parent数组中检索所有子项?这看起来很糟糕:

IList<Child> children = new List<Child>();
foreach(var parent in parents)
  children.AddRange(parent.Children);

或者那不是很糟糕? : - )

2 个答案:

答案 0 :(得分:9)

试试这个:

parents.SelectMany(p => p.Children).ToArray()

答案 1 :(得分:1)

我不认为你在问题中提出的解决方案是不好的。它非常易读且易于理解正在发生的事情。除非你有某些原因需要对此进行优化,否则我认为没有任何错误。

如果你真的想要使用Linq,这是另一个故事(在我看来完全有效 - 与Linq的经验/实践越多越好)