Enumerable.AsEnumerable<>() 是否强制对表达式求值?

Does Enumerable.AsEnumerable<>() force the evaluation of the expression?

string[] fruits = { "apple", "passionfruit", "banana", "mango",
                  "orange", "blueberry", "grape", "strawberry" };
List<int> lengths = fruits.Select(fruit => fruit.Length).ToList();

Enumerable.ToList()Enumerable.ToArray() 执行急切求值,他们强制求值。 Enumerable.AsEnumerable() 也一样吗?

谢谢

简而言之,没有。它什么都不做,它只是 return 输入集合,使用不同的界面输入。

IQueryable<T> 切换到 IEnumerable<T> 的唯一实际目的是使用可枚举版本而不是可查询版本执行进一步的 LINQ 方法,使评估转到“客户端".

但是,它本身并没有做任何事情。