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

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

 

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 

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

 

posted @ 2018-02-01 10:30  sky20080101  阅读(24383)  评论(0)    收藏  举报