.net数组的"Length","Count()"和"Rank"之间的区别是什么?
Dyp*_*ppl 51
Length是数组对象的属性,使用它是确定数组中元素数的最有效方法(MSDN文档中的Array.Length)
Count()是一个有效的LINQ扩展方法.它适用于数组,因为数组是可枚举的对象.它是首选使用Length因为Count()可能更昂贵(请参阅此问题进一步讨论和计数的MSDN文档以供参考)
Rank是返回维度数量的属性(完全不同的东西).当声明的阵列int[,] myArray = new int[5,10];的Rank的这将是2,但是它会保持总数50个元素(的MSDN上等级属性).
编辑:感谢Kornelije Petak提供相关的MSDN链接.
Meh*_*dad 20
Length:元素的总数在一个阵列LongLength:相同Length,但返回为long(如果它> = 2 31)Count():LINQ 扩展方法也适用于其他集合类型Rank:数组中的维数(始终1为向量).仅限.NET 3.5+.GetLength(),GetLongLength():数组的某个维度的长度GetLowerBound():数组某个维度的起始索引; 总是0为了矢量GetUpperBound():数组某个维度的结束索引; 总是Length - 1为了矢量有趣的是,没有GetLongUpperBound()或GetLongLowerBound()......
现在我们讨论的主题是,.NET中的数组和向量之间有什么区别?
向量就是你通常称之为C#中的"1D"数组.然而,一维数组实际上不是类型int[],但它们属于这种类型int[*].C#并不直接支持它们; 但是,它们可以创建Array.CreateInstance,并且可以具有非零下限.然而,它们比矢量稍慢,因为在CLR中直接支持向量.因为实际上很少使用一维数组,所以C#决定不支持它们(虽然它可以通过使用var关键字来使用它们,来自声明它们的另一个模块!).