C# 托利斯特<;TResult>;()扩展方法引发编译时错误

C# 托利斯特<;TResult>;()扩展方法引发编译时错误,c#,frameworks,entity,C#,Frameworks,Entity,我不能使用ToList()扩展方法。我使用的代码是 return this.Semesters.ToList<ISemester>() 但我仍然无法编译,因为它一直在抱怨 System.Data.Objects.DataClasses.EntityCollection不包含“ToList”和最佳扩展方法重载的定义System.Linq.ParallelEnumerable.ToList(System.Linq.ParallelQuery)具有一些无效参数缺少对System.Cor

我不能使用
ToList()
扩展方法。我使用的代码是

 return this.Semesters.ToList<ISemester>()
但我仍然无法编译,因为它一直在抱怨
System.Data.Objects.DataClasses.EntityCollection
不包含“ToList”和最佳扩展方法重载的定义
System.Linq.ParallelEnumerable.ToList(System.Linq.ParallelQuery)
具有一些无效参数缺少对
System.Core
程序集的引用?那可能就够了

编辑:在
System.Linq
名称空间中必须有某些内容,否则将无法编译。我想可能是PFX让这一点起作用了。。。但是假设您使用的是.NET4,
parallelenumable
类也在
System.Core

如果键入可枚举的
,会发生什么情况。
-这是否显示了任何内容?

是否缺少

System.Data
System.Data.DataSetExtensions
System.Data.Entity

在你的推荐信中?

你确定你的学期实施了iMester吗?作为测试,我做了这个

interface ISemester { }
class Semester : ISemester { }

// ...

List<Semester> Semesters = new List<Semester>();
var query = Semesters.ToList<ISemester>();
接口ISemester{}
班级学期:ISemester{}
// ...
列表学期=新列表();
var query=semests.ToList();

这很好。但是,将类更改为简单的
类学期{}
,并且在语法上与您报告的错误相似。

我将假设您的类
学期
不继承
IEnumerable
。我这样说是因为为了使用
ToList
TSource
必须是
可枚举的


如果没有该引用,您可能会认为
使用System.Linq
将突出显示为无效,不是吗?@Anthony:我想知道ParallelEnumerable是否在不同的程序集中,但它不是-至少在.NET 4中不是。我在项目引用部分中已有对System.Core的引用。没有这样的命名空间,对吗?@Threecoins:你说“没有这样的命名空间”是什么意思?System.Core是一个程序集,而不是命名空间-它是包含System.Linq.Enumerable的程序集。是的,我知道,我已经引用过System.Core程序集。我的意思是,因为它不是名称空间,所以我在上面的问题中没有提到它。感谢您的支持,正如@Antony指出的,问题出在我的代码中。如果编译器错误提到
EntityCollection
,那么那里就没有使用指令的问题……不是在使用指令中,我是指在项目引用中。哎呀!是的,是我的错!我们正在实现一个不同的接口。但这个错误是误导性的。
interface ISemester { }
class Semester : ISemester { }

// ...

List<Semester> Semesters = new List<Semester>();
var query = Semesters.ToList<ISemester>();