有人能解释一下 LINQ 函数 Where(..) 和 FindAll(..) 的区别吗?他们似乎都在做同样的事情......

最佳答案

FindAll()List<T> 类型的函数,它不是像 Where 这样的 LINQ 扩展方法。 LINQ 扩展方法适用于实现 IEnumerable 的任何类型,而 FindAll 只能用于 List<T> 实例(当然,或从它继承的类的实例)。

此外,它们在实际用途上有所不同。 Where 返回 IEnumerable 的实例,该实例在枚举对象时按需执行。 FindAll 返回一个新的 List<T>,其中包含所请求的元素。 FindAll 更像是在 Where(...).ToList() 的实例上调用 IEnumerable

关于c# - LINQ、Where() 与 FindAll(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1938204/

10-17 02:12