【问题标题】:Collection.ToList<TResult>() extension method raises compile time errorCollection.ToList<TResult>() 扩展方法引发编译时错误
【发布时间】:2010-10-08 18:14:44
【问题描述】:

我不能使用ToList&lt;Tresult&gt;() 扩展方法。我使用的代码是,

 return this.Semesters.ToList<ISemester>()

上面代码中的“学期”是一个实体集合。 这些 using 指令已经存在,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

我仍然无法编译,因为它一直在抱怨 System.Data.Objects.DataClasses.EntityCollection&lt;Semester&gt; 不包含 'ToList' 的定义,并且最佳扩展方法重载 System.Linq.ParallelEnumerable.ToList&lt;TSource&gt;(System.Linq.ParallelQuery&lt;TSource&gt;) 有一些无效参数

【问题讨论】:

    标签: c# frameworks entity


    【解决方案1】:

    您确定 Semester 实现了 ISemester 吗?作为测试,我这样做了

    interface ISemester { }
    class Semester : ISemester { }
    
    // ...
    
    List<Semester> Semesters = new List<Semester>();
    var query = Semesters.ToList<ISemester>();
    

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

    【讨论】:

    • 糟糕!对,是我的错!学期正在实现一个不同的接口。但该错误具有误导性。
    【解决方案2】:

    缺少对System.Core 程序集的引用?应该可以吧……

    编辑:System.Linq 命名空间中必须有 something,否则编译将失败。我认为也许 PFX 正在使该位起作用...但是假设您使用的是 .NET 4,ParallelEnumerableSystem.Core中。

    如果您输入 Enumerable. 会发生什么 - 会显示什么吗?

    【讨论】:

    • 如果没有该引用,您会认为 using System.Linq; 会突出显示为无效,不是吗?
    • @Anthony:我想知道 ParallelEnumerable 是否在不同的程序集中,但不是——至少在 .NET 4 中没有。
    • 我的项目引用部分已有对 System.Core 的引用。没有这样的命名空间,对吧?
    • @Threecoins:“没有这样的命名空间”是什么意思? System.Core 是一个程序集,而不是命名空间 - 它是包含 System.Linq.Enumerable 的程序集。
    • 是的,我知道,我已经参考了 system.core 程序集。我的意思是,因为它不是命名空间,所以我没有在上面的问题中提到它。感谢您的支持,正如@Antony 指出的那样,问题出在我的代码中。
    【解决方案3】:

    你错过了吗

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

    在您的参考文献中?

    【讨论】:

    • 如果编译器错误提到EntityCollection&lt;T&gt;,那么这里就没有 using 指令问题...
    • 不在 using 指令中,我的意思是在项目引用中。
    【解决方案4】:

    我将假设您的类Semesters 不继承IEnumerable&lt;TSource&gt;。我这样说是因为要使用ToList&lt;TSource&gt; TSource 必须是Enumerable

    https://msdn.microsoft.com/en-us/library/vstudio/bb342261%28v=vs.100%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      相关资源
      最近更新 更多