C# 二维数组定义并初始化语法结构
变量类型 [,] 数组名 = new 变量类型 [一维元素个数, 二维元素个数]{{元素 00, 元素 01, 元素 02...},{元素 10, 元素 11, 元素 12...}...}
如定义一个二维数组 (第一纬长度为 2,第二纬长度为 3) 并初始化:
int[,] a2=new int[,]{{1,2,3},{4,5,6}};
C# 数组简介
---------------------------------------
// 定义一个一维数组
int[] array1 = new int[5];
// 定义一个一维数组并赋值
int[] array2 = new int[] {1, 3, 5, 7, 9};
// 替代语法
int[] array3 = { 1, 2, 3, 4, 5, 6};
// 定义一个二维数组
int[,] multiDimensionalArray1 = new int[2, 3];
// 定义二维数组并赋值: 注意两个数组的个数要
int[,] multiDimensionalArray2 = {{1, 2, 3},{4, 5, 6} };
// 定一一个交错数组
int[][] jaggedArray =int[][] jaggedArray = new int[6][];
// 可定义可变长度的数
jaggedArray[0] = new int[4] {1, 2, 3, 4};
jaggedArray[1] = new int[] { 1, 2, 3};
-----------------------------------------
数组具有以下属性:
数组可以是一维、多维或交错的。
数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。
交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null。
数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1。
数组元素可以是任何类型,包括数组类型。
数组类型是从抽象基类型 Array 派生的引用类型。由于此类型实现了 IEnumerable 和 IEnumerable<(Of <(T>)>),因此可以对 C# 中的所有数组使用 foreach 迭代。
C# 二维数组的两种初始化方法
方法 1:假设一个初始长度,在对数组添加元素的时候,你都需要对数组做边界检查,如果数组尺寸不够了,你需要创建一个新的数组,然后复制原来的数组到新的数组。
方法 2:初始化第一维长度为 0,在每次插入新的原始的时候,都复制一个新的数组,使它的长度等于原来数组长度 + 1,这里假定第二维是不变的。
1、打印一个 [4,6] 长度的二维数组:
- using System;
- class Matrix {
- static void Main() {
- int[, ] arr = new int[4, 6];
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 6; j++) {
- arr[i, j] = (i + 1) * 10 + j + 1;
- }
- }
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 6; j++) {
- Console.Write("{0} ", arr[i, j]);
- }
- Console.WriteLine();
- }
- }
- }
2、二维数组给 Datatable 赋值
- [STAThread] static void Main(string[] args) {
- string[, ] arrStr = {
- {
- "1",
- "No1"
- },
- {
- "2",
- "No2"
- },
- {
- "3",
- "No3"
- },
- {
- "4",
- "No4"
- }
- };
- DataTable dtTable = new DataTable("testdt");
- DataColumn myDataColumn;
- myDataColumn = new DataColumn();
- myDataColumn.DataType = System.Type.GetType("System.String");
- myDataColumn.ColumnName = "Col1";
- myDataColumn.Caption = "Col1";
- dtTable.Columns.Add(myDataColumn);
- myDataColumn = new DataColumn();
- myDataColumn.DataType = System.Type.GetType("System.String");
- myDataColumn.ColumnName = "Col2";
- myDataColumn.Caption = "Col2";
- dtTable.Columns.Add(myDataColumn); //赋值for (int i=0;i<4;i++){DataRow drRow = dtTable.NewRow();for (int j=0;j<2;j++){Console.Write("{0}、",arrStr[i,j]);drRow[j] = arrStr[i,j];}dtTable.Rows.Add(drRow);dtTable.AcceptChanges();Console.WriteLine();}//读数据for (int i=0;i{for (int j=0;j{Console.Write("{0}、",dtTable.Rows[i][j]);}Console.WriteLine();}Console.ReadLine();}
二维数组的初始化的方法
1、分行初绐化
int a[2][5]={{1,3,5,7,9},{2,4,6,8,10}};
这种赋值方法比较直观,把第一个花括号内的数据给第一行的元素,第二个花括号内的数据给第二行的元素,
2、不分行初始化
可以将所有数据写在一个花括号内,按数组排列的顺序对个元素赋初值。如:int a[2][5]={1,3,5,7,9,2,4,6,8,10};
3、部分初始化
int a[2][5]={{1,3,5},{2,4,6}};
其余元素值自动为 0。赋初值后数组各元素为:
1 3 5 0 0
2 4 6 0 0
4、省略行数
对数组中的全体元素都赋初值时,二维数组的定义中第一维的长度也可以省略,但二维的长度不能省略。如:
int a[2][3]={1,3,5,7,9,11};
等价于:int a[][3]={1,3,5,7,9,11};
但不能写成:int a[2][]={1,3,5,7,9,11};
在分行初始化时, 由于给出的初值已清楚的表明了行数和各行中元素的个数, 因此第一维的大小可以不定义。如:int b[][3]={{1},{0,2},{3,2,1}}; 显然这是一个三行三列的数组,其各元素的值为:
1 0 0
0 2 0
3 2 1
二维数组中的数据是按行形式存放在内存中。
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: