无法解析 System.Linq 命名空间

Cannot resolve System.Linq namespace

在标准 visual studio 2013 网络应用程序中工作时,我意识到似乎无法解析 System.Linq 命名空间,例如在

mylist.Sum(...)

in a class when using System.Linq is missing in the code.您必须添加

using System.Linq

手动,这是可能的(引用已添加到项目中)。这是什么原因?

所有 LINQ 方法都是 extension methods。编译器仅根据代码中存在的 using 指令知道您对哪些扩展方法感兴趣,例如

// Imports extension methods from all static classes in the
// System.Linq namespace
using System.Linq;

// C# 6 only: imports extension methods from System.Linq.Enumerable only
using static System.Linq.Enumerable;

这就是扩展方法的工作原理...它不是特定于 LINQ 的。