邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

C#二维数组初始化的方法与示例

来自:种豆 时间:2017-12-29 阅读:11457次 原文链接

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<dtTable.Rows.Count;i++)
{
for (int j=0;j<dtTable.Columns.Count;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 

二维数组中的数据是按行形式存放在内存中。

 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3371650278进行处理
sowsoy.com 版权所有 Copyright©2010-2020 浙ICP备10212932号
Email:sowsoy#hotmail.com