gpt4 book ai didi

c# - 递归 Linq - 子属性的父指示?

转载 作者:太空宇宙 更新时间:2023-11-03 21:23:21 26 4
gpt4 key购买 nike

<分区>

我有一个表(假设这个例子是 DataTable),它有层次结构记录(id、ParentId、IsEmergency):

enter image description here

ParentId=0 表示根。

所以我们有这个:

0
|
+--- 4706606
|
+--- 4706605
|
+--- 4666762
|
+--- 4668461
|
+--- 4706607

我只显示了那些有 parentId=0

的记录

但我想添加另一个逻辑列,其中声明“此父项在其中一个子项/子项中具有 IsEmergency=true

所以我在追求

id         parentId        hasEmergencyInOneOfItsChild
-------------------------------------------------------
4706606 0 false
4706605 0 false
4666762 0 true

问题:

如何通过递归 linq 实现它?

为了方便,我创建了这个数据表:

   DataTable dt = new DataTable("myTable");
dt.Columns.Add("id", typeof (int));
dt.Columns.Add("parentId", typeof (int));
dt.Columns.Add("isEmergency", typeof (bool));

DataRow row = dt.NewRow();
row["id"] =4706606;
row["parentId"] = 0;
row["isEmergency"] =false;
dt.Rows.Add(row);

row = dt.NewRow();
row["id"] =4706605;
row["parentId"] = 0;
row["isEmergency"] = false;
dt.Rows.Add(row);

row = dt.NewRow();
row["id"] =4666762;
row["parentId"] = 0;
row["isEmergency"] =false;
dt.Rows.Add(row);

row = dt.NewRow();
row["id"] =4668461;
row["parentId"] = 4666762;
row["isEmergency"] = false;
dt.Rows.Add(row);

row = dt.NewRow();
row["id"] =4706607;
row["parentId"] = 4668461;
row["isEmergency"] = true;
dt.Rows.Add(row);

我已经尝试过一些东西,但它很讨厌而且效率不高

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com