C# LINQ是否使用底层数据结构?

C# LINQ是否使用底层数据结构?,c#,linq,optimization,C#,Linq,Optimization,举个例子,看看这里被接受的答案。现在我想知道LINQ函数(例如,Last,FirstOrDefault)是否完全幼稚,它们所做的只是枚举/检查IEnumerable,或者检查下面的数据结构(至少对于Array,List等基本集合)而且执行针对这种结构进行了优化?它们在有意义的地方执行,通常不是针对实际类型,而是针对一个接口(例如,当IList有助于加速时,它们会检查IList)为了省去您的疑惑,如果您已经阅读了接受的答案,您知道它至少有一段时间是这样做的。有时也不会。@christiandev,

举个例子,看看这里被接受的答案。现在我想知道LINQ函数(例如,
Last
FirstOrDefault
)是否完全幼稚,它们所做的只是枚举/检查
IEnumerable
,或者检查下面的数据结构(至少对于
Array
List
等基本集合)而且执行针对这种结构进行了优化?

它们在有意义的地方执行,通常不是针对实际类型,而是针对一个接口(例如,当IList有助于加速时,它们会检查IList)

为了省去您的疑惑,如果您已经阅读了接受的答案,您知道它至少有一段时间是这样做的。有时也不会。@christiandev,谢谢你,奇怪的是,这些扩展被标记为
内部
。@Henkholtman,当然我对特殊情况不感兴趣,但对一般规则感兴趣。但似乎规则是“没有规则”:-。