T []代表数组,为什么不是IEnumerable <t>?</t>

时间:2011-09-17 23:12:57

标签: c# arrays ienumerable

为什么T[]代表数组,而不是C#中的IEnumerable<T>

我知道.NET 2.0中引入了泛型。如果它是从头开始设计的,那么将[]映射到数组是否有意义?积极使用LINQ扩展方法,我宁愿编写简单的T[]而不是庞大的IEnumerable<T>或明确的.ToArray()

我只是出于学术原因而感到疑惑。

1 个答案:

答案 0 :(得分:2)

T[]是静态类型C语言的数组的标准语法。如果.NET 1.0具有泛型,则阵列可能使用Array<T>类型。

无论如何,如果T[]用于IEnumerable<T>,则只能在声明中使用,而您无法使用new T[] { ... }创建一个。就接口而言,将它映射到IList<T>会更有意义,因为方括号意味着索引。