leo*_*ora 12 c# linq collections
如果我有
IEnumberable<Car> list
Run Code Online (Sandbox Code Playgroud)
我想根据汽车的属性从此列表中删除一个项目
我想要的东西:
list.RemoveWhere(r=>r.Year > 2000)
Run Code Online (Sandbox Code Playgroud)
这样的事情存在吗?
我一遍又一遍地这样做,所以我想避免每次复制列表只删除一个项目
slo*_*oth 13
IEnumberable 是不可变的,但你可以这样:
list = list.Where(r=>r.Year<=2000)
Run Code Online (Sandbox Code Playgroud)
或写一个扩展方法:
public static IEnumerable<T> RemoveWhere<T>(this IEnumerable<T> query, Predicate<T> predicate)
{
return query.Where(e => !predicate(e));
}
Run Code Online (Sandbox Code Playgroud)
The*_*oul 13
聚会很晚,但任何人都会遇到这个问题,这是一个更清洁的解决方案:
MyList.RemoveAll( p => p.MyProperty == MyValue );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22994 次 |
| 最近记录: |