如何使用 linq 对列表及其子项及其子项进行排序?

2023-12-02

我有一个亲子关系,类似于:

public class MyType {

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

}

我想选择列表,以便每个级别都按顺序排列。

我可以轻松地为顶层做到这一点:

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

但我该如何为每组孩子做到这一点呢?

最终结果将是列表或类型及其所有子项,并且子项(等等)均按顺序正确排序。

Thanks.


您可以通过添加一种方法来执行递归顺序MyType像这样:

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());
    }
} 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 linq 对列表及其子项及其子项进行排序? 的相关文章

  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • 从“VisitLambda”调用时,重写“System.Linq.Expressions.ParameterExpression”类型的节点必须返回相同类型的非空值

    我将数据层类库项目从 NET Core 2 2 升级到 NETCore3 1 并将 EntityFrameWork Core 等 Nuget 包从 2 2 0 升级到 EFCore 3 1 0 然后我在验证以下代码时收到如下错误 Code
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 向 Nhibernate 发出 SQL 查询

    如何将此 SQL 查询发送给 Nhibernate SELECT Customer name FROM Company INNER JOIN Customer ON Company CompanyId Customer CompanyId
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当

随机推荐

  • jQuery 日期选择器多选和取消选择[重复]

    这个问题在这里已经有答案了 是否可以启用jquery UI datepicker 来启用多选和取消选择 我正在使用的日期选择器的示例 http jqueryui com datepicker 我有一个要求 使日期选择器能够选择多个日期 我想
  • 包含撇号的 Ruby 正则表达式是什么?

    我目前正在为 Ruby 做 exercism io 但无法通过最后的测试 最后的测试内容如下 def test with apostrophes phrase Phrase new First don t laugh Then don t
  • 如何处理 Visual Studio C++ 中的访问冲突?

    通常访问冲突会终止程序 并且我无法使用以下命令捕获 Win32 异常try and catch 有没有办法让我的程序保持运行 即使发生访问冲突 最好我想处理异常并向用户显示发生了访问冲突 编辑 我希望我的程序非常健壮 即使是针对编程错误 我
  • 如何使用 JDBC 连接到本地主机?

    我在自己的机器上安装了MySql 我使用 MySql CommandLine Client 创建了数据库 创建了表 在学校开展项目时 我使用以下语法连接到学校的数据库 public static Statement connect try
  • 忽略 Elasticsearch 中的空格

    对于我的搜索 我想考虑以下事实 space 过滤器请求中的字符不是强制的 例如 当我过滤 THE ONE 我看到了相应的文档 就算写了也想看 THEONE 这就是我今天的查询的构建方式 boolQueryBuilder must Query
  • 在google云平台上部署python脚本

    我正在弄清楚如何在谷歌云平台上部署我的脚本 我已经创建了一个包含以下内容的目录或文件夹script py以及所有的图书馆 lib文件夹 我不明白的是设置我的app yaml to run script py python 2 7 和访问li
  • Jquery在页面加载后生效

    我正在使用jquery ui 但该页面需要很长时间才能加载 我还对 UL 标签的 LI 元素使用制表符功能 但一瞬间列表按原样显示 然后选项卡效果发生 我已经编写了用于在同一 html 文件中调用选项卡的 javascript 我如何减少加
  • 使用 soundpool 播放声音示例

    我想学习如何使用soundpool方法 我想让你向我展示一个运行 2 个声音的非常简单的示例 创建一个名为的文件夹raw under your app res 然后将您的铃声粘贴到此文件夹中 例如your app res raw ringt
  • 在两个可能的分隔符之一之前查找一个单词

    word 12335 anotherword 2323434 totallydifferentword 455 word 32 我需要抓取之前的字符串 or 仅使用基本 R 函数 我可以使用以下方法来做到这一点stringr但不想向我的包添
  • 如何在.net core项目中设置soapclient的超时

    我必须在 Net Core 2 0 项目中使用 SOAP 服务 我添加了服务参考 如以下链接所述 缺少链接 404 对于某些方法 服务运行良好 但是 某些方法需要很长时间 由于操作服务正在执行 在这种情况下程序会抛出异常 System Ne
  • 如何从我自己的网站更新 Facebook 状态?

    我有自己的网站 正在创建博客 新闻条目 但我希望在添加它们时将它们直接上传到我的 Facebook 页面 有没有一种简单的方法可以做到这一点 我的代码是这样的 是否有代码或 API 我可以用来更新我的 Facebook 页面 您需要注册成为
  • 带有post请求和参数作为Json对象android的HttpUrlConnection

    您好 我正在开发小型 Android 应用程序 我想在其中使用 HttpUrlConnection post 请求 并将 params 作为 json 对象 但它对我不起作用我是通过以下方式做到的 try URL url DataOutpu
  • 服务器端包含在expressjs中

    是否可以使用express js 生成服务器端包含 我正在尝试在不同页面上重用页眉和页脚标记 以便我可以在一处进行页眉 页脚更改 尝试使用部分 您必须在一些模板引擎之间进行选择 默认模板引擎是jade 因此为此您必须执行以下操作 创建一个文
  • 在.net 4.5项目中使用.net 2.0 dll(vshost在调试时崩溃)

    我正在尝试使用通过 dotnetbuilder 从 matlab 创建的 dll 文件 http www mathworks se help dotnetbuilder ug create a net component from matl
  • 在 OpenCV 中匹配相似图像

    我有两组图像 H 和 L H 由 512x512 图像组成 L 包含 H 中的所有图像 但缩小到 32x32 128x128 并带有有损压缩产生的压缩伪影 使用 OpenCV 将 H 中的图像与 L 中最接近的图像进行匹配的最佳方法是什么
  • 扑克牌翻转动画

    您知道有哪些免费组件 库可以实现 3D 翻转效果吗 演示在这里 斯诺克电视 这是一个尝试使用SetWorldTransform type TForm1 class TForm PaintBox1 TPaintBox Button1 TBut
  • 使所有按钮大小相同

    请看下面的代码 import javax swing import java awt event import java awt public class GUI extends JFrame private JButton open pr
  • 为什么整个系统事件溯源是反模式?

    我目前正在设计一个新的企业系统 该系统的目的是跟踪 显示客户与公司的互动 即事件 并通知员工 使用事件源模式来保存所收集的所有客户交互 事件的分类帐似乎非常合适 因为我们所有其他域对象都源自事件流 然而 我看到一篇文章说基于事件源的整个系统
  • 不想在 jqGrid 页面加载后第一次显示排序图标

    我正在使用 jqGrid 并通过 JSON 加载数据 当我第一次获取数据时 我使用自定义方法对其进行排序并将该数据传递到网格 但它总是在第一列上显示排序图标 我不想显示该图标 因为自定义方法使用多个计算对数据进行排序 但是当排序图标出现在第
  • 如何使用 linq 对列表及其子项及其子项进行排序?

    我有一个亲子关系 类似于 public class MyType public IList