为什么.net中的数组只能实现IEnumerable而不是IEnumerable <T>?

为什么.net中的数组只能实现IEnumerable而不是IEnumerable <T>?

我正在实现我自己的ArrayList类,当我意识到这一点时感到惊讶

public System.Collections.Generic.IEnumerator<T> GetEnumerator() {
    return _array.GetEnumerator();
}

没有工作 数组在.NET中不实现IEnumerator的原因是什么?

有没有办法解决?

谢谢

采纳答案:

数组确实实现了IEnumerable<T> ,但它是作为CLI对阵列的特殊知识的一部分而完成的。 许多工具不会显示此实现。 请参阅文档 (早期.NET版本的文档:查找“重要”)块中的“从.NET Framework 2.0开始”的说明中的段落。

你可以添加一个演员:

return ((IEnumerable<T>)_array).GetEnumerator();

参考更多解答:为什么.net中的数组只能实现IEnumerable而不是IEnumerable <T>?,转载请保留为什么.net中的数组只能实现IEnumerable而不是IEnumerable <T>?

更多:c#