【问题标题】:Why can I not call ToArray on a generic IEnumerable object? [closed]为什么我不能在通用 IEnumerable 对象上调用 ToArray? [关闭]
【发布时间】:2013-07-11 20:00:09
【问题描述】:
public static T[] ToArray<T>(IEnumerable<T> e) {
  return e.ToArray();
}

我收到以下编译器错误:

错误 1 ​​System.Collections.Generic.IEnumerable&lt;T&gt; 不包含 ToArray 的定义并且没有扩展方法 ToArray 接受 System.Collections.Generic.IEnumerable&lt;T&gt; 类型的第一个参数 可以找到(您是否缺少 using 指令或程序集 参考?

但是MSDN reference 列出了这个方法。这里有什么问题?

【问题讨论】:

  • 您是否缺少 using 指令?!
  • 您是否在文件中添加了using System.Linq; 命名空间?
  • 当我(尚未)使用任何 linq 时,我不小心使用“删除未使用的使用”删除了我的 Linq 引用。只是需要注意的事情。
  • 再次阅读错误信息,尤其是括号中的解释什么是错误的。

标签: c# arrays


【解决方案1】:

假设您使用的是 .NET 3.5 或更高版本,您需要将 using 指令添加到代码文件的顶部:

using System.Linq;

您还需要有一个对 System.Core 的程序集引用(尽管 Visual Studio 项目默认情况下应该有这个引用)。

【讨论】:

    【解决方案2】:

    您在文件顶部缺少using System.Linq;。

    ToArray 是在IEnumerable&lt;T&gt; 上实现的扩展方法,作为LINQ (Language-Integrated Query) 的一部分,因此您必须添加它才能使其工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多