举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > c#多维数组批量赋值 C# 多维数组

c#多维数组批量赋值 C# 多维数组

2023-02-25 15:18 C#教程

c#多维数组批量赋值 C# 多维数组

c#多维数组批量赋值

C#多维数组是指在C#中,可以定义多个维度的数组,比如一维数组、二维数组、三维数组、四维数组……。在C#中,可以使用for循环来实现多个元素的批量赋值。

首先,我们需要定义一个多维数组,比如定义一个二位数组int[,] arr = new int[3,3];然后使用for循环来对这个二位数据进行批量赋值。

for (int i = 0; i < 3; i++) 
{ 
    for (int j = 0; j < 3; j++) 
    { 
        arr[i,j] = i + j; 
    } 
}

上面的代码就是对二位数据arr进行批量赋值的代码,其中i和j分别代表arr的行和列;arr[i,j]就是arr中的一个元素;i+j就是要赋值的内容。

当然,我们也可以使用foreach循环来对多位数据进行批量赋值。例如我们要对一个三位数据int[,,] arr2 = new int[3,3,3]进行批量赋值:

foreach (int item in arr2) 
{ 
    item = 1;  //将arr2中的所有元都赋值为1 
}

上面的代码就是使用foreach循

C# 多维数组

C#多维数组

多维数组有两种类型:矩形和锯齿。

矩形阵列表示存储器的n维块,锯齿形阵列是阵列阵列。

矩形数组

使用逗号分隔每个维度来声明矩形数组。

以下声明一个矩形二维数组,其中维度为3乘3:


int[,] matrix = new int[3,3]; 

数组的 GetLength 方法返回从0开始的给定维度的长度:


for (int i = 0; i < matrix.GetLength(0); i++) {
    for (int j = 0; j < matrix.GetLength(1); j++) {
        matrix[i,j] = i * 3 + j; 
    }
}

矩形数组可以初始化如下:


int[,] matrix = new int[,] { 
                        {0,1,2}, 
                        {3,4,5}, 
                        {6,7,8} 
                        }; 

锯齿数组

锯齿数组使用连续的方括号来表示每个维度。

这里是一个声明一个锯齿状的二维数组的例子,其中最外面的维度是3:


int[][] matrix = new int[3][]; 

内部尺寸未在声明中指定,每个内部数组可以是任意长度。

每个内部数组都隐式初始化为null,而不是一个空数组。

每个内部数组必须手动创建:


for (int i = 0; i < matrix.Length; i++) { 
    matrix[i] = new int[3]; // Create inner array 
    for (int j = 0; j < matrix[i].Length; j++)
        matrix[i][j] = i * 3 + j; 
    } 
}

锯齿数组可以初始化如下:


int[][] matrix = new int[][] { 
        new int[] {0,1,2}, 
        new int[] {3,4,5}, 
        new int[] {6,7,8,9} 
}; 

数组初始化

有两种方法可以缩短数组初始化表达式。

第一个是省略new运算符和类型限定:


char[] vowels = {"a","e","i","o","u"}; 
int[,] rectangularMatrix = { 
    {0,1,2}, 
    {3,4,5}, 
    {6,7,8} 
}; 

int[][] jaggedMatrix = { 
    new int[] {0,1,2}, 
    new int[] {3,4,5,2,2,2,2}, 
    new int[] {6,7,8} 
}; 

第二种方法是使用var关键字,它告诉编译器隐式地键入一个局部变量:


var i = 3; // i is implicitly of type int 
var s = "asdf"; // s is implicitly of type string 

var rectMatrix = new int[,]{ 
    {0,1,2}, 
    {3,4,5}, 
    {6,7,8} 
}; 

var jaggedMatrix = new int[][]{
     new int[] {0,1,2},
     new int[] {3,4,5},
     new int[] {6,7,8} 
}; 

我们可以省略new关键字后的类型限定符,并让编译器推断数组类型:

var letters = new [] {'a','e','i','o','u'}; //编译器推断char []

阅读全文
以上是编程学为你收集整理的c#多维数组批量赋值 C# 多维数组全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • c#异常处理 C# 异常

    c#异常处理 C# 异常

    2023-02-25 C#教程

    C#异常using语句许多类封装了非托管资源。这些类实现 System.IDisposable ,它定义了一个名为Dispose的单一无参数方法来清理这...

  • c#委托的理解 C# 委托

    c#委托的理解 C# 委托

    2023-02-25 C#教程

    C#委托委托是调用方法的对象。我们可以认为委托是函数指针或函数类型。委托类型定义委托实例可以调用的方法类型。委托类型定义...

  • c#委托的用法 C# 通用委托

    c#委托的用法 C# 通用委托

    2023-02-28 C#教程

    C# 通用委托委托类型可以包含通用类型参数。例如:public delegate T ConverterT (T arg);有了这个定义,我们可以编写一个适用于...

  • c#中输出型参数类型 C# 类型参数

    c#中输出型参数类型 C# 类型参数

    2023-02-27 C#教程

    C#类型参数类型参数可以在类,结构,接口,委托和方法的声明中引入。其他构造(如属性)不能引入类型参数,但可以使用一个。例...

  • c#泛型约束 C# 泛型约束

    c#泛型约束 C# 泛型约束

    2023-02-28 C#教程

    C#泛型约束默认情况下,类型参数可以用任何类型替换。约束可以应用于类型参数,以需要更具体的类型参数。这些是可能的约束:wher...

© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部