[英]Remove Items from recursive list by property
我有这样的数据结构
public class DomainObject
{
public List<DomainObject> Children { get; private set; }
public List<Car> Cars { get; private set; }
}
public class Car
{
public bool Sold { get; }
}
所以我的结构相当嵌套,我想删除所有未标记为Sold
Car
。
这是我真正想要的一个例子
List
DomainObject
Children
Car A (Sold)
Car B (!Sold)
Car C (Sold)
Children
Car D (!Sold)
Car E (!Sold)
Car F (Sold)
变成
List
DomainObject
Children
Car A
Car C
Children
Car F
递归函数应该做到这一点。
public void RemoveNonSoldCars(DomainObject parent)
{
parent.Cars.RemoveAll(x => !x.Sold);
foreach (var item in parent.Children)
RemoveNonSoldCars(item);
}
创建一个使用DomainObject
的方法,然后从其Cars
变量中删除所有未售出的汽车。 这可以通过反向for
循环或结合使用RemoveAll
和linq
。 通过为其中的所有子对象调用自身来结束方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.