为什么T[]
代表数组,而不是C#中的IEnumerable<T>
?
我知道.NET 2.0中引入了泛型。如果它是从头开始设计的,那么将[]
映射到数组是否有意义?积极使用LINQ扩展方法,我宁愿编写简单的T[]
而不是庞大的IEnumerable<T>
或明确的.ToArray()
。
我只是出于学术原因而感到疑惑。
答案 0 :(得分:2)
T[]
是静态类型C语言的数组的标准语法。如果.NET 1.0具有泛型,则阵列可能使用Array<T>
类型。
无论如何,如果T[]
用于IEnumerable<T>
,则只能在声明中使用,而您无法使用new T[] { ... }
创建一个。就接口而言,将它映射到IList<T>
会更有意义,因为方括号意味着索引。