1.数组的问题
一旦声明的时候指定了数组大小,后面使用时就不可以动态扩充了。即:int[ ] num=new int[3]; num[3]=4是不能别加入数组num中的,因为数组的长度已经定义好了。
为了解决这个问题可以通过定义ArrayList类。
2.ArrayList的优点
不受初始大小的限制,后面使用时可以随意扩充 无论是什么类型,添加到ArrayList集合中后,都会转换成object类型,当你取出来的时候,其就是object类型。
第一种定义方式:
ArrayList array = new ArrayList();
array.Add(1);
array.Add(2);
array.Add(3);
在定义是不写出定义的长度。
第二种定义方式:
ArrayList array = new ArrayList(3);
array.Add(1);
array.Add(2);
array.Add(3);
即在定义是写出定义长度,但与数组不同不同的是可以动态扩展。
明明已经加入三条但还可以再加入例如加入下面一条:
array.Add("你好");
ArrayList还可以加入一个类例如下面的代码:
static void Main(string[] args)
{
ArrayList array = new ArrayList(3);
Banji banji = new Banji()
{
Name = "NET班",
Numb = 41
};
array.Add(banji);
}
class Banji
{
public string Name { get; set; }
public int Numb { get; set; }
public int Basketball()
{
return 100;
}
}
但是读取出来的是object类型,所以要转换一下类型才可以读出。
Banji newbanji = array[0] as Banji;//as关键字将基类转换为Banji类,又新建一个变量来存储。
Console.WriteLine(newbanji.Name+","+newbanji.Numb);
另一种方式:
foreach (Banji item in array)
{
Console.WriteLine(item);
}
为了更加优化读取时的问题,所以要定义LIST集合类。既能控制输入的类型又能动态添加。
3.List<类型> 变量名=new List<类型>();
和ArrayList array=new ArrayList();基本一样,能够使用add方法方便的进行数据存储;另外使用时可以动态扩充大小,同时其只能存储声明时指定的数据类型。
List<Banji> list = new List<Banji>();
Banji banji = new Banji()
{
Name = "NET",
Numb = 41
};
list.Add(banji);
Banji b = list[0];
Console.WriteLine(b.Name+","+b.Numb);
Console.ReadKey();