深入.net(集合)

 Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

 

 

 集合技术:

         用于“批量数据”管理的重要技术,是数组技术的替代技术!

        与数组技术的对比:

         数组:只提供“存储的空间”,但缺乏各种数据管理措施!

         集合:在数组的基础上,提供丰富的“属性”和“方法”,来方便我们对数据的访问,且不限定长度!

 

典型“集合类型”:

        传统集合  ----- ArrayList、Hashtable (灵活、需要装拆箱、提取数据容易拆箱错误)

        泛型集合  -----List<T>、      Dictionary<K,V>(减少灵活性,确保稳定性且提高效率)

 

 

集合中,重要的属性和方法:

        ----- ArrayList aList = new ArrayList(100);//一般不指定长度

泛型集合 的使用(List<T>):

        属性、方法:与传统集合ArrayList一样,唯一不同的是,限定数据类型,不需再进行装、拆箱!

 

 

List<T>的使用语法:

               //初始化方式一:

            _studens = new List<Student>();//1、准备容器

            Student stu1 = new Student(); //2、创建学生对象

            stu1.Name = "王小平";

            stu1.Age = 20;

            stu1.Sex = "男";

            _studens.Add(stu1);//3、加入集合

            //初始化方式二:

            _studens = new List<Student>()

            {

                new Student(){Name="王军", Age=20, Sex="男"},

                new Student(){Name="白小鹏",Age=30, Sex="男"},

                new Student(){Name="刘丽",Age=18,Sex="女"}

            };

              //数据绑定方式一:BindingList

            this.dataGridView1.DataSource =

                new BindingList<Student>(_studens);

 

            //数据绑定方式二:BindingSource

            BindingSource source = new BindingSource();

            source.DataSource = _studens;

            this.dataGridView1.DataSource = source;

 

Dictionary<k,v>的使用语法:

               //初始方式一

            _student = new Dictionary<string, Student>();

            Student stu1 = new Student();

            stu1.Name = "王大力";

            stu1.Age = 23;

            stu1.Sex = "男";

            _student.Add(stu1.Name, stu1);

            //初始方式二(集合初始化化器)

            _student = new Dictionary<string, Student>()

            {

                {"王大力",new Student(){Name="王大力",Age=23,Sex="男"}},

                {"白军",new Student(){Name="白军",Age=21,Sex="男"}},

                {"李白",new Student(){Name="李白",Age=27,Sex="男"}}

            };

            //数据绑定

            BindingSource source = new BindingSource();

            source.DataSource = _student.Values;

            this.dataGridView1.DataSource = source;

 

 

 

 

ArrayList集合,替代了数组,提供大量的属性和方法来方便用户的操作!但是,当要元素搜索定位时,还是只有通过“循环遍历”的方式,如何优化呢?

        ----- 不在将数据“顺序存放”,而是在数据存放前,通过其“能够标识其身份的信息”(key键),通过公式(哈希算法)计算出它的存放地址!这样的好处就是,当需要查找某一元素时,只需要知道(key键),就可以通过哈希算法,再次算出它的存放地址,从而快速定位元素。【Hashtable】

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。