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 方法,使评估转到“客户端".
但是,它本身并没有做任何事情。
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 方法,使评估转到“客户端".
但是,它本身并没有做任何事情。