使用linq我想检查某些条件,如果满足该条件我想从列表中删除该对象
伪代码
if any object inside cars list has Manufacturer.CarFormat != null
delete that object
if (muObj.Cars.Any(x => x.Manufacturer.CarFormat != null))
{
?
}
答案 0 :(得分:3)
使用List函数RemoveAll,你可以
muObj.Cars.RemoveAll(x => x.Manufacturer.CarFormat != null);
答案 1 :(得分:1)
我在
上没有这个RemoveAll
IList
方法
这是因为RemoveAll
是List<T>
上的方法,而不是IList<T>
。如果你不想尝试转换为List<T>
(如果它失败了怎么办?)那么一个选项是通过索引循环(以相反的顺序循环,以免扰乱索引计数:
for (int i = muObj.Cars.Count - 1; i >= 0; i--)
{
if(muObj.Cars[i].Manufacturer.CarFormat != null)
muObj.Cars.RemoveAt(i);
}