锯齿数组

二维数组的大小对应于一个矩形,如对应的元素个数为3X3。而锯齿数组的大小设置比较灵活,在锯齿数组中,每一行都可以有不同的大小。

在声明锯齿数组时,要依次放置左右括号。在初始化锯齿数组时,只在第一对方括号中设置该数组包含的行数。定义各行中元素个数的第二个方括号设置为空,因为这类数组的每一行包含不同的元素个数。之后,为每一行指定行中的元素个数:

using System;

namespace 锯齿数组
{
    class Program
    {
        static void Main(string[] args)
        {
            int[][] jagged = new int[3][];
            jagged[0] = new int[2] {1,2};//设置为2列
            jagged[1] = new int[6] {3,4,5,6,7,8};//设置为6列
            jagged[2] = new int[3] {9,10,11};//设置为3列
            //迭代锯齿数组中所有元素的代码可以放在嵌套的for循环中。在外层的for循环迭代每一行,在内层的for循环迭代一行中的每个元素:
            for(int row = 0;row <jagged.Length;row++){
                for(int element = 0;element < jagged[row].Length;element++){
                    System.Console.WriteLine($"row:{row},element:{element},value:{jagged[row][element]}");
                }
            }

        }
    }
}

 

### C#锯齿数组的示例用法 锯齿数组(Jagged Array)是一种数组数组,其中每个子数组的长度可以不同。与矩形数组(如二维数组)相比,锯齿数组在 .NET 中提供了更快的访问速度,并且在处理不规则数据时更加灵活。 #### 示例代码 以下是一个简单的 C# 示例,展示了如何声明、初始化和访问锯齿数组中的元素: ```csharp using System; class Program { static void Main() { // 声明一个锯齿数组,包含 3 个子数组 int[][] jaggedArray = new int[][] { new int[] { 1, 2 }, new int[] { 3, 4, 5 }, new int[] { 6 } }; // 访问并打印锯齿数组中的元素 for (int i = 0; i < jaggedArray.Length; i++) { Console.WriteLine($"Sub-array {i}:"); for (int j = 0; j < jaggedArray[i].Length; j++) { Console.Write(jaggedArray[i][j] + " "); } Console.WriteLine(); } } } ``` #### 输出结果 ``` Sub-array 0: 1 2 Sub-array 1: 3 4 5 Sub-array 2: 6 ``` 在这个示例中,`jaggedArray` 是一个包含三个子数组锯齿数组。每个子数组的长度不同,分别包含 2、3 和 1 个元素。 #### 使用场景 锯齿数组适用于以下几种常见场景: - **不规则数据存储**:当每个子数组的大小不固定时,例如表示不同行中列数不同的表格数据。 - **性能优化**:在 .NET 中,锯齿数组的访问速度通常比二维数组更快,因此在需要高性能的场景中使用锯齿数组可以提高效率。 - **动态扩展**:可以在运行时动态地调整每个子数组的大小,而不必预先定义固定的二维结构。 #### 动态初始化锯齿数组 有时需要在运行时动态创建锯齿数组。以下是一个动态初始化锯齿数组的示例: ```csharp using System; class Program { static void Main() { // 动态创建锯齿数组 int[][] jaggedArray = new int[3][]; jaggedArray[0] = new int[2] { 1, 2 }; jaggedArray[1] = new int[3] { 3, 4, 5 }; jaggedArray[2] = new int[1] { 6 }; // 打印数组内容 for (int i = 0; i < jaggedArray.Length; i++) { Console.WriteLine($"Sub-array {i}:"); for (int j = 0; j < jaggedArray[i].Length; j++) { Console.Write(jaggedArray[i][j] + " "); } Console.WriteLine(); } } } ``` 该示例展示了如何在运行时逐步构建锯齿数组,并根据需要分配不同大小的子数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值