FindAll和Linq where的区别

我们在集合查询时经常用到FindAll和where筛选集合。二者实现的功能都是一样的.

 1.FindAll是List<T>类型中的一个方法,而不像where是一个Linq表达式的扩展方法。我们知道linq表达式可以基于所有继承IEnumerable的集合上使用,而FindAll只能运用于List<T>的实        例。

 2. 另外 where是延时加载的,FindAll不是,你可以把FindAll==where().ToList();

 3.FindAll调用的是Predicate<T>的委托,而where扩展方法调用的Function<T,bool>的委托。两者实现功能一样,但是内部实现方法不一样。

原文地址:https://www.cnblogs.com/garysun90/p/4863009.html