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

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

我收到以下编译器错误:

错误1 System.Collections.Generic.IEnumerable不包含ToArray的定义,也没有扩展方法ToArray接受System.Collections.Generic.IEnumerable类型的第一个参数(你是否缺少using指令)或汇编参考?

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

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

 using System.Linq; 

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

你错过了using System.Linq; 在文件的顶部。

ToArray是作为LINQ(语言集成查询)的一部分在IEnumerable上实现的扩展方法,因此您必须使用它来使其工作。