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() 复制;