为什么我不能在通用IEnumerable对象上调用ToArray?

时间:2013-07-11 20:00:09

标签: c# arrays

public static T[] ToArray<T>(IEnumerable<T> e) {
  return e.ToArray();
}

我收到以下编译错误:

  

错误1 System.Collections.Generic.IEnumerable<T>不包含   ToArray的定义,并且没有接受a的扩展方法ToArray   System.Collections.Generic.IEnumerable<T>类型的第一个参数   可以找到(你错过了使用指令或程序集   参考

但是MSDN reference列出了这种方法。这有什么不对?

2 个答案:

答案 0 :(得分:19)

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

using System.Linq;

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

答案 1 :(得分:6)

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

ToArrayIEnumerable<T>上作为LINQ (Language-Integrated Query)的一部分实现的扩展方法,因此您必须添加该方法才能使其正常工作。