我如何使用LINQ排序列表和它的孩子们和他们的孩子? [英] How do I sort a list and its children and their children using linq?

查看:117
本文介绍了我如何使用LINQ排序列表和它的孩子们和他们的孩子?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有父子关系,是这样的:

I have a parent child relationship, something like:

public class MyType {

    public IList<MyType> Children {get;set;}
    public int Order {get;set;}

}

$ B $ ; b

我想选择列表,这样每一级都是为了

I would like to select the list so that each level is in order.

我可以为顶级做到这一点很容易:

I can do this easily for the top level:

mylist.Children.OrderBy(x => x.Order)

不过,我该怎么办呢,每一套儿童?

But how do I do it for every set of Children?

最终的结果将是列表或其所有的儿童型,并有儿童(等)全部由顺序排序正确。

The end result would be the list or type with all its children, and there children (and so on) all sorted correctly by Order.

感谢。

推荐答案

您可以通过添加一个方法的MyType 这样做递归订单:

You can do Recursive Order by adding one method to MyType like this:

public class MyType
{
    public IList<MyType> Childrens { get; set; }
    public int Order { get; set; }

    public void RecursiveOrder()
    {
        Childrens = Childrens.OrderBy(x => x.Order)
            .ToList();

        Childrens.ToList().ForEach(c => c.RecursiveOrder());
    }
} 

这篇关于我如何使用LINQ排序列表和它的孩子们和他们的孩子?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆