集合

来源:互联网 发布:spss 23 mac 许可证 编辑:程序博客网 时间:2024/05/17 22:19

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

 

原创粉丝点击