我是Linq的新手。从我的理解LINQ应该只用于查询,但不适用于修改集合或db等RemoveAll的用途()
如果是这种情况,为什么微软提供RemoveAll()
扩展?
至于我的理解去RemoveAll()
修改集合。
这难道不是对LINQ的目的是什么?
可以请一些解释提供RemoveAll()
的原因是什么?
我是Linq的新手。从我的理解LINQ应该只用于查询,但不适用于修改集合或db等RemoveAll的用途()
如果是这种情况,为什么微软提供RemoveAll()
扩展?
至于我的理解去RemoveAll()
修改集合。
这难道不是对LINQ的目的是什么?
可以请一些解释提供RemoveAll()
的原因是什么?
RemoveAll()
是从NET 2.0的List<T>
类的一部分。
它与LINQ无关;它早于LINQ几年。
List<T>
有许多做同样的事情LINQ方法的方法,包括ConvertAll
,Exists
,Find
,FindAll
,FindLast
和TrueForAll
。
它还具有ForEach
方法,该方法is not LINQ。
并且不要忘了李斯特的反向()......不太一样LINQ的反向().. – 2011-09-15 17:26:20
@jdv:或'排序()';那为什么我没有提到他们。 – SLaks
你的理解是不正确的。 –
约翰,我不同意。 LINQ的核心概念是提供函数式编程方面,如不变性(当然还有延迟执行)。 RemoveAll确实违反了这一点。例如,关于为什么没有内置Enumerable.ForEach扩展方法的常见理由是它违反了不变性的原则。但是,对于OP的问题(以及由SLak指出),RemoveAll不是LINQ,根本不是扩展方法。 – Jeff