C#入门及进阶|数组和集合(一):概述及数组的定义

目录

【概述及数组的定义】

1.概述        

2.数组的定义

 2.1 一维数组

2.2 多维数组

2.3不规则数组

3.数组创建实例


【概述及数组的定义

1.概述        

        数组是具有相同的数据类型且按一定次序排列的一组变量的集合体,构成一个数组的这些变量称为数组元素,数组有一个统一的名字叫数组名。

        在数组与集合的专题内容中,我们首先学习数组的创建和访问,然后在此基础上,学习数组的一些复杂的操作,主要包括存储、查找和排序技术。

        一个数组的每一维都有相应的长度,这个长度是一个大于或等于零的整数。维的长度不是数组类型的一部分,但是更适于当一个数组类型的实例在运行时被创建时建立。

        一个数组中元素的全部数量是数组中每一维的长度的乘积。如果数组中一个或者多个维的长度为零,这个数组就被称为是空的。数组中元素的类型可以是任何类型,包括数组类型。

        C# 数组从零开始建立索引,即数组索引从零开始。C#中数组的工作方式与在大多数其他流行语言中的工作方式类似。但还有一些差异应引起注意。

        声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面。在 C#中,将方括号放在标识符后是不合法的语法。

int[] table;   // not int table[]

        数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分。这使我们可以声明一个数组并向它分配 int 对象的任意数组,而不管数组长度如何。例如: 

int[] numbers; //定义一个任意长度的整型数组numbers
numbers = new int[10]; // numbers数组长度为10
numbers = new int[20]; //现在numbers数组长度变成了20

2.数组的定义

        C# 支持一维数组、多维数组(矩形数组)和不规则数组。例如:

        一维数组: 

int[] numbers;

        多维数组: 

string[,] names;

        不规则数组:

byte[][] scores;

 2.1 一维数组

        (1) 一维数组声明语法形式

         type[ ] arrayName;其中:type——可以是C#中任意的数据类型; [ ]——表明后面的变量是一个数组类型,必须放在数组名之前;arrayName——数组名,遵循标识符的命名规则

        例如: 

int [ ]a1;      // a1是一个含有int类型数据的数组
double [ ]f1;   // f1是一个含有double类型数据的数组  
string [ ]s1;   // s1是一个含有string类型数据的数组

        (2) 创建数组对象

        用new运算符创建数组实例,有两种基本形式。声明数组和创建数组分别进行:

 type [ ]arrayName ;           	// 数组声明
 arrayName = new type[size];   	// 创建数组实例

        其中:size——表明数组元素的个数;声明数组和创建数组实例也可以合在一起写:

type [ ]arrayName = new type[size] ; 

         例如:

int [ ] a1;
a1 = new int [10];  // a1是有10个int类型元素的数组
string [ ]s1 = new string[5];         //s1是含有5个string类型元素的数组

2.2 多维数组

        (1) 多维数组声明语法形式

type  [ ,  ,  , ]arrayName;

        多维数组就是指能用多个下标访问的数组。在声明时方括号内加逗号,就表明是多维数组,有n个逗号,就是n+1维数组。

        例如: 

int [ , ] score;  // score是一个int类型的二维数组
float [ , , ] table; // table是一个float类型的三维数组

        (2) 创建数组对象

        声明数组和创建数组分别进行:

type [ ,  ,]arrayName; // 数组声明
// 创建数组实例
arrayName = new type[size1, size2, size3];

        其中:size1, size2, size3——分别表明多维数组每一维的元素个数;声明数组和创建数组实例也可以合在一起写:

type [,  , ]arrayName = new type[size1,size2,size3];

        例如:

int [, ] score ;
score = new int [3, 4]; //score是一个3行4列的二维数组
float [ , , ] table=new float [2, 3, 4]; //table是一三维数组,每维分别是2、3、4

2.3不规则数组

         一维数组和多维数组都属于矩形数组,而C#所特有的不规则数组是数组的数组,它的内部每个数组的长度可以不同,就像一个锯齿形状。

    不规则数组声明:

 type[ ][ ][ ] arrayName;

    方括号[ ]的个数与数组的维数相关。例如:

int[ ][ ] jagged; //jagged是一个int类型的二维不规则数组

3.数组创建实例

        【实例1】显示0~n的值,创建一个一维数组,其元素个数由变量n确定,用for循环给数组的每个元素赋值,其元素的值分别为0,1,2,…,n,并将其输出到消息框中,每行5个元素。变量n的值从文本框中输入。在Visual  Studio中插入相应控件及事件(有关控件后面内容会具体详细说)并输入如下代码:  

private void button1_Click(object sender,System.EventArgs e)

     {

       int n=Int32.Parse(textBox1.Text);

       string output=””;

       int [] number=new int[n];

       for(int i=0;i=0;i--,j++)

{

    if(j%5==0)

      output+=number[i]+”\n”;

    else

      output+= number[i]+”\t”

}

MessageBox.Show(string.Fromat(output));

}

        【代码分析与讨论】

        int[] number=new int [n]声明并创建数组number,元素个数为n,在此n为变量,但使用之前必须被赋值。若声明并创建数组时有初始值设定项,则n不能是变量,必须是常数,若n为变量会发生编译错误:“应输入常数值”如:

int n=Int32.Parse(textBox1.Text);
int[] number=new int[n] {1,2,3,4,5,6};

        是错误的。而:

int n=Int32.Parse(textBox1.Text);
int[] number=new int[n] ;

        则是正确的。

        数组的Length属性保存数组中当前包含的元素总数。因此可以通过for循环向数组的每一个元素赋值:

for(int i=0;i

        其中“number[i]=i;”语句的作用是将i的值赋给元素number[i]。

        以下for循环将数组中每个元素按照索引从大到小的顺序存入字符串output中,每隔5个元素插入一换行符。每行元素与元素之间相距Tab键空隔。

for(int i=number.Length-1,j=1;i>=0;i--,j++)

{

    if(j%5==0)

        output+=number[i]+”\n”;

    else

        output+= number[i]+”\t”

}

你可能感兴趣的:(C#入门及进阶教程,c#,开发语言)