什么是LINQ查询的返回类型?

它是IEnumerable 。 据我所知,引用总是指向一个类实例。 LINQ查询真正指向的实例类型是什么?

您可以通过IEnumerable变量上调用.GetType()并检查调试器中的类型来找到它

对于不同的LINQ提供者甚至不同的LINQ方法,这些类型可能会也可能不会有所不同。

对你的代码来说最重要的是它们都实现你应该使用的IEnumerable ,或者也接受表达式的 IQueryable ,这意味着你的谓词和预测将成为语法树,并且可以在运行时由LINQ提供程序操作,例如,要翻译成SQL。

实际的类,如果这是您所询问的,甚至可能是编译器生成的,例如, yield return表达式被转换为这样的类。
无论哪种方式, 它们通常都是内部的,你永远不应该依赖它们

根据您的原始数据源,它是IEnumerable或IQueryable:

Linq数据库查询的结果通常是IQueryable ,它是从IEnumerable ,IQueryable和IEnumerable派生的。

如果数据库查询包含OrderBy子句,则类型为IOrderedQueryable ,派生自IQueryable

如果您的数据源是IEnumerable,则结果类型为IEnumerable

我不知道,但我想这是一种内部类型。 你不必考虑这门课。

事实上,根据具体的查询,它可能是不同的类。 编译器可以根据条件/处理将LINQ表达式转换为一个或另一个实现。

如果我没有弄错, IEnumerable< T > ,其中T取决于您的查询

您可以在此处查看Query操作的三个部分。您可以看到LINQ查询的返回类型是IEnumerable