AsEnumerable()vs."as IEnumerable <T>"

rom*_*oza -1 c# linq ienumerable

有什么区别

(db.Records as IEnumerable<Record>).Where(...)
Run Code Online (Sandbox Code Playgroud)

(db.Records.AsEnumerable()).Where(...).
Run Code Online (Sandbox Code Playgroud)

只是AsEnumerable()快捷方式source as IEnumerable<T>吗?

我已经阅读了https://msdn.microsoft.com/en-us/library/bb335435(v=vs.90).aspx,但没有找到任何关于它的信息.

Ser*_*rvy 6

不同的是,你可以叫AsEnumerableIEnumerable<T>哪里T是一个匿名类型,你不能对这样的顺序执行这样的演员,因为你不能键入的是一个没有名字的类型的名称.这种AsEnumerable推断泛型参数的能力是它存在的原因.

(它也可以说是更清晰的语法,但在匿名类型之外,这不是功能差异,仅仅是个人偏好.)