这将有效:
public IEnumerableGetAllChildren(IEnumerable parents) { return from parent in parents from child in parent.Children select child; }
然后这个:
public IEnumerableGetAllChildren(IEnumerable nanas) { return from papa in nanas from parent in papa.Children from child in parent.Children select child; }
注意,在这个例子中,我实际上并没有返回一个列表,我正在返回一个IEnumerable数据源,直到你开始使用它,或类似的,实际上不会进行任何处理.
如果需要返回列表,请按如下所示修改每个return语句:
return (from ..... ... select child).ToList();
这是强制性的方法形式.
return parents .SelectMany(p => p.Children);
并且有两个级别:
return oldies .SelectMany(grand => grand.Children) .SelectMany(parent => parent.Children);