当前位置:  开发笔记 > 编程语言 > 正文

是否有一种linq-y方式来联合对象集合的集合属性?

如何解决《是否有一种linq-y方式来联合对象集合的集合属性?》经验,为你挑选了2个好方法。



1> angry person..:

这将有效:

public IEnumerable GetAllChildren(IEnumerable parents)
{
    return from parent in parents
           from child in parent.Children
           select child;
}

然后这个:

public IEnumerable GetAllChildren(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();



2> Amy B..:

这是强制性的方法形式.

return parents
  .SelectMany(p => p.Children);

并且有两个级别:

return oldies
  .SelectMany(grand => grand.Children)
  .SelectMany(parent => parent.Children);

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有