gpt4 book ai didi

c# - 有条件地获取 Parent 和 Child 对象

转载 作者:太空狗 更新时间:2023-10-30 01:07:46 24 4
gpt4 key购买 nike

我有一个具有以下基本结构的对象列表:

class Person
{
public int ID {get; set;}
public bool ShowChildren {get; set;}
public int ParentID {get; set;}

// ...many other properties...
}

我需要返回一个按 ID 排序的 Person 父类列表。如果启用了 ShowChildren 标志,还返回其父项下的子项,并按其 ID 排序。

这只有一层深,即 child 不会有 child 。

我可以写一个 linq 语句来给我所有的 parent ,但我仍然坚持如何在启用 parent 的标志时也包括排序的 child 。

var People = PersonList
.Where(x => x.ParentID == 0)
.Orderby(x => x.ID)
.ToList();

最佳答案

抱歉,如果除非明确要求(感谢@Rawling!),如果您只想返回父级,foreach 循环也不错。

var people = new List<Person>();

PersonList.Sort((a, b) => a.ID - b.ID);

foreach(Person p in PersonList) {
if(p.ParentID == 0) { // Or whatever value you use to represent it
people.Add(p);

if(p.ShowChildren) {
people.AddRange(PersonList.Where(c => c.ParentID == p.ID));
}
}
}

关于c# - 有条件地获取 Parent 和 Child 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11349708/

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