总结树上的值

2024-03-26

我使用树控件来查看一些基于嵌套(父子)表的分层项目。

每个节点都有一个 NameValue 格式,接受 name 和 value 。

但只有叶子(最后一个节点)具有整数值,并且父节点的值保留为空(仅是它们具有的名称)。

我想总结值,以便每个父节点都保存其子节点和叶子值的总和。

我认为需要递归或者 LINQ 来完成这项任务,但我不知道如何实现?

也许一些伪代码对我有帮助。

先谢谢您的帮助!


这是未经测试的,但我认为设置所有节点的所有值可能有效:

public void SetNodeValues(Node node)
{
    if (node.Name == String.Empty)
    {
        //If it has no name it is a leaf, which needs no value
        return;
    }
    else
    {
        //Make sure all child-nodes have values
        foreach (var childNode in node.ChildNodes)
        {
            SetNodeValues(childNode);
        }

        //Sum them up and set that as the current node's value
        node.Value = node.ChildNodes.Sum(x => x.Value);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

总结树上的值 的相关文章

随机推荐

  • 如何在 Spark Dataframe 中按组/分区重命名列?

    我有一些传感器数据按通道名称而不是传感器名称存储在表中 这是为了避免表太宽 因为许多传感器仅在少数设备上使用 这是稀疏列的工作 我知道 但我只是数据的用户 像这样的事情 from functools import reduce import
  • 内存映射显示的 RAM 多于物理可用内存

    我正在开发一个小型 x86 内核 我正在访问并尝试读取 GRUB 在多重引导标头中提供的内存映射 我有一个 Intel i3 cpu 和 4 GiB RAM 在这台机器上运行时 我正在读取以下内存映射 Base Address Length
  • phpmyadmin的PHP不执行但其他php脚本可以运行

    调用 phpmyadmin 网站时 会出现 保存文件 对话框application x httpd php 所以我的服务器不执行 phpmyadmin php 脚本 而是将代码传输到我的浏览器 其他 php 如 roundcube 或 is
  • Gradle:下载包含的 aar-library 的依赖项

    我写了一个图书馆项目cameraBarcodeScanner它内置于 aar 文件中 该库在其 build gradle 中定义了以下依赖项 dependencies compile fileTree dir libs include ja
  • 根实体中的 GAE 事务

    我是 GAE 新手 对数据存储事务有一些疑问 例如 我有一个用户实体 当用户在 Facebook 上添加我的应用程序时创建该实体 我通过 Facebook API 获得了一些属性 但我想为用户添加用户名 并且该用户名必须是唯一的 所以在事务
  • 如何获取prometheus中(当前)建立的TCP连接数(kubernetes监控)

    我在 Linux 中使用此命令来查看 当前 建立的 TCP 连接 netstat ant grep ESTABLISHED wc l 我如何将此命令转换为 PromQL 每个节点 我在 kubernetes 集群中使用带有节点导出器的 pr
  • 如何使用 R 个性化时间线?

    我想用 R 绘制一个时间线 其中的时间段很容易识别 我可以在其中个性化可视化 periods 周期 盒子 的颜色 线条 颜色 位置 文本的位置并将其放入 框 中 轴 大小 颜色 选择重点 与事件相关的日期 etc 我使用时间线库 但是我找不
  • 如何触发Uploadify onError 事件处理程序?

    我在用上传 http www uploadify com 上传文件 问题是 我需要通知用户处理这些文件期间出现的任何错误 上传有onError onComplete and onAllComplete事件处理程序 但我不知道如何触发这些事件
  • Owin WS-Federation 设置令牌滑动过期

    有人可以解释如何使用新的实现滑动过期吗欧文WS 联合会 plugin 在客户端 在 WS Federation配置我看到有一些events like Notifications new WsFederationAuthenticationN
  • 在触摸屏上禁用文本输入上的 Chrome 粘贴菜单

    如何在触摸屏上禁用 Chrome 中这个烦人的上下文菜单 当我复制了一些文本时 在选择 长按任何输入时会弹出此窗口 我正在使用 CEFSharp Chromium 嵌入式框架 开发一个应用程序 并将其部署在 Windows 8 计算机的触摸
  • C# 中枚举对象的属性(字符串)

    假设我有很多对象 并且它们有很多字符串属性 是否有一种编程方式来遍历它们并输出属性名称及其值 或者是否必须进行硬编码 是否有一种 LINQ 方法来查询 字符串 类型的对象属性并输出它们 您是否必须对要回显的属性名称进行硬编码 使用反射 它远
  • 在 R 程序中排序后对行重新编号

    我已经订购了一组行来得到这个 2 1983 TRI COUNTY TRAUTH 0 1495 0 1395 NA 452 0 0764 4 0 06 02 83 4 1983 TRI COUNTY TRAUTH 0 1193 0 1113
  • 具有行为和 ORM 的丰富域模型

    观看 Jimmy Bogard 的 NDC12 演示 Crafting Wicked Domain Models 后 http ndcoslo oktaset com Agenda http ndcoslo oktaset com Agen
  • 一个类似于 StringIO 的类,它扩展了 django.core.files.File

    class MyModel models Model image models FileField upload to blagh blagh more spam 我内存中有一个文件 我想通过 Django FileField save 方
  • VSTS - 应用程序中心 - Yaml - 找不到端点

    我正在尝试使用 yaml 设置我的构建定义 我正在使用AppCenter分发任务 https github com Microsoft vsts tasks tree master Tasks AppCenterDistribute 它需要
  • typeorm - 如何向“多对多”表添加额外字段?

    例如 3 tables user user business lines business line business line 那些创建者typeorm与声明User ManyToMany type gt BusinessLine Joi
  • Firebase 仅部署函数流程

    如果我有两个 Firebase 函数 fire1 and fire2 共享一个辅助函数 doSum 将部署firebase deploy only functions fire1改变环境fire2 不 每个功能彼此完全独立 每个已部署的函数
  • 如何使用 grpc 修复 python 中的“类型错误:不允许位置参数”

    我正在使用 Ubuntu 18 04 3 LTS x64 在 python 中使用 grpc 设置微服务 我尝试改变分配参数的方式 从我的 protoc 文件重新生成代码 客户代码 class Cliente def IniciarClie
  • ie6中缺少div高度的解决办法

    我正在使用一个空 div 通过设置来显示一行高度 3 像素 它在所有浏览器中都能正常工作 但在ie6显示的高度 div20 像素高度 即使对于 height 0px 它也保持不变 但其他属性的变化反映但不反映高度 并且没有重复的 CSS 条
  • 总结树上的值

    我使用树控件来查看一些基于嵌套 父子 表的分层项目 每个节点都有一个 NameValue 格式 接受 name 和 value 但只有叶子 最后一个节点 具有整数值 并且父节点的值保留为空 仅是它们具有的名称 我想总结值 以便每个父节点都保