1,什么是数组?
答:数组是一组同数据类型且可索引的数据的集合。
2,数组Array和ArrayList有何区别?
答:数组是固定大小的,而ArrayList是可变大小的。
一,数组的使用(适用于固定大小)
namespace ArrayDemo1 { class Program { static void Main(string[] args) { //1, 数组的声明和初始化,有两种方法 //方法一:常规方法 //string[] names=new string[5];//需要指定数组元素个数 //names[0] = "a"; //names[1] = "b"; //names[2] = "c"; //names[3] = "d"; //names[4] = "e"; //方法二:对象初始化列表 string[] names = new string[] { "a","b","c","d","e"};//与方法一等价 //2, 数组元素的设置和访问,有两种方法 //方法一:直接存取法 names[2] = "cc";//设置 string myName=names[2];//存取 //调用Array类的SetValue()和GetValue()方法 //names.SetValue("cc",2);//设置 //string myName1 = (string)names.GetValue(2);//存取,注意GetValue返回的类型是Object //3, 数组的遍历 foreach (string name in names)//也可以使用for循环遍历 { Console.Write(name+" "); } Console.ReadKey(); //程序输出结果为: /* a b cc d e */ } } }
二,ArrayList的使用(适用于动态增长的数组)
namespace ArrayListDemo1 { class Program { static void Main(string[] args) { //1, 创建一个ArrayList实例(对象) ArrayList grades = new ArrayList();//不需要指定数据项大小 //2, 添加项,有两种添加方法 //方法一:Add()方法 grades.Add(100);//每次只能添加一个项,且添加在末尾 grades.Insert(1,95);//添加在指定位置 //方法二:AddRange()方法 grades.AddRange(new int[]{90,80,70});//注意该方法参数为ICollection对象,即实现了接口ICollection //3, 移除项,有两种方法 //方法一:Remove()方法 if (grades.Contains(90))//移除前最好检查对象是否存在 { grades.Remove(90); Console.WriteLine("90 be removed!"); } else { Console.WriteLine("Object not in ArrayList!"); } //方法二:RemoveAt()方法,适用于知道元素的索引的情况下 int pos = 0; pos = grades.IndexOf(80);//通过IndexOf()方法确定要移除元素的位置(索引) grades.RemoveAt(pos); Console.WriteLine("80 be removed!"); //4, 遍历 Console.WriteLine("The list of grades: "); foreach (Object grade in grades) { Console.Write(grade+" "); } Console.ReadKey(); //程序输出结果为: /* 100 95 70 */ } } }