why C# queue or list only has count but array has length?
本问题已经有最佳答案,请猛点这里访问。
这可能是一个愚蠢的问题,为什么队列或列表没有长度属性,而只有计数?同样,为什么数组有长度属性?
谢谢
数组是固定大小的,它们总是通过预先定义大小来初始化。
与
Why there is no
.Length property for aCollection orList ?
这的确是一个很好的问题,部分答案与上述不同,但也受框架设计本身的影响。
在框架设计中,集合是
列表或集合的计数通过获取集合的枚举器工作,然后在递增计数器的同时迭代这些项。
下面是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public static int Count<TSource>(this IEnumerable<TSource> source) { if (source == null) { throw Error.ArgumentNull("source"); } ICollection<TSource> is2 = source as ICollection<TSource>; if (is2 != null) { return is2.Count; } int num = 0; using (IEnumerator<TSource> enumerator = source.GetEnumerator()) { while (enumerator.MoveNext()) { num++; } } return num; } |