假设我有一个List<T>
包含 1000 个项目的项目。
然后我将其传递给过滤此列表的方法。当它通过各种情况(例如可能有 50 种情况)时,List<T>
可能有多达 50 种不同的 LinqWhere()
操作对其执行。
我对尽可能快的运行很感兴趣。因此,我不希望List<T>
每次Where()
对其执行 a 时都对其进行过滤。
本质上,我需要它来推迟对 的实际操作,List<T>
直到应用了所有过滤器。
这是由编译器本地完成的吗?或者只是当我在返回的 IEnumerable 上调用 .ToList() 时List<T>.Where()
,还是应该Where()
对 X 执行操作(其中 X = List.AsQueryable())?
希望这是有道理的。