C#二维数组初始化的方法与示例
namespace TriangleCalc { class Program { static void Main(string[] args) { int[][] dataArry = new int[5][]; dataArry[0]=new int[1]; dataArry[0][0]=7; dataArry[1]=new int[2]; dataArry[1][0]=3;dataArry[1][1]=8; dataArry[2]=new int[3]; dataArry[2][0]=8;dataArry[2][1]=1;dataArry[2][2]=0; dataArry[3]=new int[4]; dataArry[3][0]=2;dataArry[3][1]=7;dataArry[3][2]=4;dataArry[3][3]=4; dataArry[4]=new int[5]; dataArry[4][0]=4;dataArry[4][1]=5;dataArry[4][2]=2;dataArry[4][3]=6;dataArry[4][4]=6; for (int i=0;i<dataArry.Length;i++) { int[] line=dataArry[i]; for (int j=0;j<line.Length;j++) { Console.Write("{0},",line[j]); } Console.WriteLine(); } } } }
C#二维数组初始化的方法与示例
http://www.sowsoy.com/topics-549.html
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
二维数组中的数据是按行形式存放在内存中。

浙公网安备 33010602011771号