【发布时间】:2020-01-01 18:11:39
【问题描述】:
C# 为什么数组和集合的同一个属性(Count 和 Length)的名称不同? 只是让不熟悉这个问题的人头疼。
【问题讨论】:
-
数组也有
LongLength,因为它们可以是多维的,例如 -
实际上,数组也有一个 Count 属性,因为数组也实现了 ICollection 接口,它有一个 Count 属性。因此,如果您编写一个可以接受数组作为输入的方法,那么您应该这样做,而不是只接受一个数组 T[] 可能接受 ICollection
或 IList 会更好,因为它会使您的方法更加通用通过接受除数组之外的其他类型的集合(数组以及 List 实现这两个接口),额外的好处是您无需考虑 Length 或 Count 是否正确。 -
数组有 Count“方法”而不是属性,其中列表有 Count 作为属性。
-
数组没有 Count 属性或方法,LINQ 为数组添加了 Count 扩展...
-
@McGuireV10 要清楚,LINQ 将
Count扩展方法添加到任何实现IEnumerable的包括数组的东西。