我有这样的数据结构
public class DomainObject
{
public List<DomainObject> Children { get; private set; }
public List<Car> Cars { get; private set; }
}
public class Car
{
public bool Sold { get; }
}
因此我的结构相当嵌套,我想删除所有未标记为Car
的{{1}}。
这是我真正想要的一个例子
Sold
成为
List
DomainObject
Children
Car A (Sold)
Car B (!Sold)
Car C (Sold)
Children
Car D (!Sold)
Car E (!Sold)
Car F (Sold)
答案 0 :(得分:2)
应该使用递归函数。
public void RemoveNonSoldCars(DomainObject parent)
{
parent.Cars.RemoveAll(x => !x.Sold);
foreach (var item in parent.Children)
RemoveNonSoldCars(item);
}
答案 1 :(得分:1)
创建一个使用DomainObject
的方法,然后从其Cars
变量中删除所有未售出的汽车。可以通过反向for
循环或将RemoveAll
与linq
一起使用来完成。通过对其中的所有子对象进行调用来结束该方法。