C# 数组

C#是一种区分大小写的语言,大小不正确会使代码无法成功编译。


数组

存储一种类型的多个数据项,可以利用索引来单独的访问这些数据项,C#的数组索引是从零开始的,所以我们也说C#中的数组是基于零的。数组,相同类型的多个数据项的一个集合。数组中的每个数据项都使用名为索引(index)的一个整数值进行唯一性标识。(偏移量:专业术语,比如 第一个距离数组开头的偏移量为0.)。



数组的声明:

string [ ] languages ;

string 标识了数组中存储的元素的类型;  [ ] 方括号指定了数组的秩(rank)或者说维数;  languages 数组名称;


数组的实例化和赋值;

string [ ] languages={ "C#" , "C++" ,"COBOL" ,"Java" } ;


如果在声明之后在进行赋值,需要使用 new 关键字和对应的数据类型;

 string [ ]  languages;

languages=new string [ ] { "C#" , "C++" , "Java" } ;

使用new 关键字 会让运行时为数据类型分配内存,它指示“运行时”实例化数据类型——本例是一个数组。


string [ ] languages =new languages [ 9 ]  {   ..............  }

数组大小和括号中包含的元素数量必须匹配。


初始值

引用类型(比如string)初始值为 null ;

数值类型初始值为零;

bool 初始值为 false;

char 初始值为 ' \n ' 。

非基本值类型以递归的方式初始化,他们的每一个字段都是被初始化为默认值;


在C#2.0中,可以使用default()运算符来判断一种数据类型的默认值,default()获取一个数据类型作为参数,例如:

default  (int) 会返回 0;

default (char) 会返回 \0 ;


string [ ] nnn;

System.Cosole.Write("who many items on the list ?") ;

int size = int.Parse(System.Cosole.ReadLine().);

nnn=new string [size];


二维数组 、三维数组、多维数组;

例如:二维数组

int [ , ] cells = int  [3,3] ;     int [  , ] cells= { {1,0,1} , {1,1,1}, {2,3,1}  };


初始化,每个int [ ] 元素的维数必须是完全一致的,下面代码无效错位

int [ , ] cells = {{1,0,2} , {1,} , {1,22,2,33333} };


bool [ , ,] cells;

cells=new bool [2,3,3]{ .................. };  

bool [ , , ] 类型的字面值划分为两个bool[  , ]类型的数组,每个数的大小都是3 * 3;


交错数组

int [ ] [ ] cells ={

        new int [ ] { 1,21,2} ,

        new int [ ] { 0, 7},

        new int [ ] { 1 }

};

交错数组不使用逗号来表标识一个新的维,相反,交错数组定义一个数组构成的数组;


数组的使用


将一个数组的值存储到另个变量中:

string [ ] languages =new string [ 5 ]{

"C#" , " C++ ", "Java"

} ;

string language =languages [2] ;

将languages 中的第三项 Java存储到变量language 中;


将数组中的元素进行替换:

string [ ] languages =new string [ 5 ]{

"C#" , " C++ ", "Java"

} ;

string language =languages [2] ;

languages [3] =language ;


数组的长度是固定的,长度不能随便更改,除非重新创建数组,除此之外,越过数组的边界(或长度)会造成“运行时“报错。

使用数组长度作为索引来访问数组,会出错。例如:

string [ ] languages =new string[5];

.

.

.

languages [4] =languages [ 9] ;  

将会出错。最高索引为8  ,而不是9 ;

 

操作数组中的元素 包括:Sort( )、BinarySearch() 、Reverse()和Clear()等;

使用BinarySearch()方法之前,有必要对数组进行排序,如果数值不按照升序进行排序,会返回不正确的索引,如果搜索的元素不存在,那么返回的是负值。使用取反运算符~index 会返回大于搜索值得第一个索引(如果有的话)。

clear()方法不删除数组元素,而且不将长度设置为零,数组的大小是固定的,不能修改,所以clear() 方法将数组中得每个元素都设为其默认值(false、null 或 0);

GetLength() 获取一个特定维的长度。

Rank 这是维上得元素个数:

bool [ , , ] cells;

cells=new bool [ 2,3,6];

System.Cosole.WriteLine(cells.Rank);  

结果为3;

clone() 复制;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值