C#中二维数组array.length和array[i].length的区别

本文详细解释了在多维数组中如何使用length属性和GetLength()方法来获取数组的维度大小,包括行数和列数,并澄清了与集合和字符串类中的size()和length()方法的区别。

array.length是二维数组中的主数组的长度,可以表示数组的行数

array[i].length是其中分数组的长度,即第i行的长度
此外 还有方法GetLength(),获取指定维度的的数量

若是二维数组,则有
array.GetLength(0);//获取第一维的长度,即行数
array.GetLength(1);//获取第二维的长度,即列数

四维数组
int[,] arr = new int[9, 8, 7, 6];

arr.Rank;//返回4
arr.GetLength(0);//返回9
arr.GetLength(1);//返回8
arr.GetLength(2);//返回7
arr.GetLength(3);//返回6
arr.GetUpperBound(0)+1;//返回9
arr.Length;//返回3024

容易混淆的还有size()方法,size()方法是针对集合而言,例如List,Set和Map都有size()方法,此外string类最初只有length(),引入STL之后,为了兼容也加入了size()方法,两者没有区别。

C# 中,获取数组长度是一个非常常见且直观的操作。C# 提供了内置的 `Length` 属性,用于获取数组的长度,这与 C 语言中使用 `sizeof` 操作符计算数组长度的方式有显著不同[^1]。 ### 获取数组长度的方式 C# 中的数组是对象,所有数组类型都继承自 `System.Array` 类,该类提供了 `Length` 属性,用于返回数组中所有度的元素总数。这使得获取数组长度变得非常简单统一。 #### 示例代码 ```csharp using System; class Program { static void Main() { int[] arr = { 1, 2, 3, 4, 5 }; int length = arr.Length; Console.WriteLine("数组的长度为:" + length); } } ``` 在上述代码中,`arr.Length` 直接返回数组 `arr` 的元素数量。这种语法简洁且易于理解,适用于所有类型的数组,包括一数组、多数组交错数组[^1]。 ### 多数组中的 `Length` 使用 对于多数组,`Length` 属性返回的是数组所有度的总元素数量,而不是某个特定度的长度。例如: ```csharp int[,] matrix = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; Console.WriteLine("矩阵的总元素数量为:" + matrix.Length); ``` 上述代码中,`matrix.Length` 返回 6,因为该二维数组包含 3 行 2 列,共 6 个元素。 ### 与字符串长度的对比 在 C# 中,字符串类型 `string` 也具有 `Length` 属性,用于返回字符串中字符的数量。这种统一的命名方式使得开发者可以更容易地记住使用不同数据类型的长度获取方式[^2]。 ```csharp string str = "IncludeHelp"; Console.WriteLine("字符串的长度为:" + str.Length); ``` 在该示例中,`str.Length` 返回 11,表示字符串 "IncludeHelp" 包含 11 个字符。 ### 注意事项 虽然 `Length` 属性在 C# 中非常常用,但在某些情况下需要特别注意其行为。例如,在交错数组数组数组)中,`Length` 属性的行为可能会有所不同。例如: ```csharp int[][] jaggedArray = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}, new int[] {6} }; Console.WriteLine("交错数组的行数为:" + jaggedArray.Length); Console.WriteLine("第一行的元素数量为:" + jaggedArray[0].Length); ``` 在上述代码中,`jaggedArray.Length` 返回的是数组的行数(即 3),而 `jaggedArray[0].Length` 返回的是第一行的元素数量(即 2)。 ### 总结 C# 中的 `Length` 属性是获取数组长度的标准方法,它简洁、直观且适用于所有数组类型。这种方式与 C 语言中使用 `sizeof` 操作符相比更加优雅安全,同时与字符串类型的 `Length` 属性保持一致,增强了语言的一致性易用性[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值