浅谈:C#中的非泛型集合

时间:2021-05-21 19:23:53

 

1.首先:ArrayList:非泛型集合

List:泛型集合

集合跟数组比较我们更容易理解。数组:1,长度固定2,数据类型预先声明

集合:1,长度可变2,数据类型预先声明的为泛型集合,数据类型不限定为非泛型

ArrayList:1.类似于数组,称为数组列表;容量可以根据需要自动扩充,它的索引会根据程序的扩充而重新进行分配和调整,还提供一系列方法对其中的元素进行访问,添加和删除操作!

2.ArrayList的命名空间为Collections;

例如:

//值传递的引用传递
            Student stu = new Student();
            stu.Age = 18;
            //用一个方法更改学生年龄
            changStudentAge(stu);
            Console.WriteLine(stu.Age);

            ArrayList list = new ArrayList();
            list.Add("狗子");
            list.Add("狍子");
            list.Add("戏子");

            //遍历
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }
            //移除
            list.Remove("戏子");
            //移除ArraylIST的指定索引除的下标
            list.RemoveAt(1);
            //修改
            list[0] = "瘸子";
            Console.WriteLine("list.Remove==========");
            foreach (var item in list)
            {
                Console.WriteLine(item);
            }

            ArrayList list = new ArrayList()
            {
                new SE(){Name = "你好"},
                new SE(){Name = "BYANG"},
            };
            foreach (SE item in list)
            {
                Console.WriteLine(item.Name);
            }
总结:不管是非泛型或者泛型集合,长度都是不固定的。泛型是指集合元素类型限定了,
而非泛型集合元素类型为object类型,相当于任何类型都可以。


2.Hashtable:称为数据结构,通常称为哈希表,字典;是通过键(Key)和值(Value)来组织的,
属于Collections命名空间;
Hashtable的常用的属性:
Count:获取包含在Hashtable中的键/值对的数目
Keys:
获取包含在Hashtable中的键的对的集合
Values:获取包含在Hashtable中的值的集合
3.Hashtable的一些方法:
  Hashtable table = new Hashtable();
            table.Add("CBC","中国建设银行");
            table.Add("IBC","中国农业银行");
            table.Add("ICBC","中国工商银行");
            foreach (string Key in table.Keys)
            {
                //获取值
                Console.WriteLine(Key);
                //双列表如何
                Console.WriteLine(table[Key]);
            }
            Console.WriteLine("删除之后=================");
            //删除
            table.Remove("CBC");
            foreach (string Key in table.Keys)
            {
                  //获取值
                Console.WriteLine(Key);
                //双列表如何
                Console.WriteLine(table[Key]);
            }

            Console.ReadLine();