1、C#数组,一维数组声明,一维数组声明方式: type var; 或 type var; 例如: int a1; int a2; double b; Person p1; C#语言中声明数组时不能指定其长度 例如:int a5; /非法,数组对象的创建,C#中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型数组元素个数 例如: public class Test static void Main(string args) int s; s = new int5; for(int i=0;i5;i+) si = i; ,00 00 0,Stack s,元素为引用数据类型的数
2、组,注意:元素为引用数据类型的数组中的每个元素都需要实例化。,heap,nullnullnull,days,class Date public Date(int day, int month, int year) this.day = day;this.month = month;this.year = year;public override string ToString()return this.year + “,“ + this.month + “ “ + this.day;int day;int month;int year;Date date1 = new Date5;for (i
3、nt i = 0; i date.Length; i+)date1i = new Date(i, i * 2, i * 1000);Console.WriteLine(date1i);Console.ReadKey();,元素为引用数据类型的数组,注意:元素为引用数据类型的数组中的每个元素都需要实例化。,heap,nullnullnull,days,200441,200443,200442,数组初始化,静态初始化:在定义数组的同时就为数组元素分配空间并赋值,例如:,数组元素的引用,定义并用运算符new为之分配空间后,才可以引用数组中的每个元素,数组元素的引用方式为: arrayNameinde
4、x a3,bi,c5*i 数组元素下标从0开始 每个数组都有一个属性length指明它的长度,例如: a.length的值为数组a的长度(元素个数)TestSort.cs TestArgs.cs,练习,1.TestArray.CS 命令行参数 2.从命令行读入一些列随机数,排序(选择排序)。 3.引用类型排序。TestDateSort.cs,二维数组,二维数组可以看成以数组为元素的数组。 C#中多为数组的声明和初始化按从高维道低维德顺序进行,例如: int a = new int 3; a0 = new int2; a1 = new int4; a2 = new int3; int t1 =
5、new int4 /非法,二维数组初始化,静态初始化 Int a = new int31,2,2,3,3,4,5; Int b32 = 1,2,2,3,3,4; /非法 动态初始化 Int a = new int35;/非法 Int b = new int3; B0 = new int2; B1 = new int3; B2 = new int5;,二维数组举例,数组的拷贝,使用C# System.Array类的静态方法 public static void copy(Object src,Object dest,int length)可以用于数组src拷贝到目标数组从第一个元素项开始的len
6、gth个位置如果源数据数目超过目标数组边界会抛除越界异常 TestArrayCopy.cs,foreach关键字遍历数组,表达形式 Date date1 = new Date7; foreach (Date date11 in date1) Console.WriteLine(date11); 含义:将date1数组里头的每个元素提取出来复制给date11。 特点:句法简洁,但必须每个元素都访问。 举例验证,字符串处理,字符串 string,可看作是 char变量的只读数组,可采用如下访问方式 string s1 = “hello”;char c = s13;/获得l 常用方法: ToChar
7、Array()/将字符串转换为字符数组 Split(params char separator)以某个字符分隔字符串,返回字符串数组 ToLower():转换小写形式 ToUpper();转换大写形式 CompareTo(string a);比较两个字符串大小,字符串替换:string Replace(string value1,string newvalue);将字符串中出现的 value1的地方替换为newValue 取字串:string SubString(int starIndex)取从startIndex开始一直到最后的子字符串 String SubString(int startI
8、ndex,int length)取从位置startIndex开始长度为length的子字符串,如果字串长度不足将报错。 Bool Contains(string value) 判断字符串中是否含有value字串 Bool startWith(string value)判断字符串是否以value开头 Int indexOf(string value):取字串value第一次出现的位置,接受用户输入 1,2,3;4,5,6;7,8 编写程序输出1 2 34 5 67 8,Java与C#中string的异同,C#中所有string对象都放在堆中,而java根据定义的形式,既可以放到堆栈中(有一个string池)也可以放到堆中。 String s = “123”;java和C#中,比较字符串时“=”和“equals()方法”的异同。在C#中s1 = s2和(s1.equals(s2)表示的意义相同,都是比较字符串的实际内容;而在java中前者比较的是地址,后者比较的才是字符串实际的内容。,总结,