• 深入.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】

     

  • 相关阅读:
    深入浅出理解索引结构
    SQL数据库碎片检查DBCC SHOWCONTIG含义
    NHibernate和SqlImage
    C#中验证sql语句的方法 (SET PARSEONLY 与SET NOEXEC )
    Webbrowser控件判断网页加载完毕的简单方法
    如何将一个HTML页面嵌套在另一个页面中
    WCF REST Service: InstanceContextMode.PerCall 不管用,无法实现并发
    linux中修改ssh端口
    linux修改主机名(不重启)
    centos使用光盘作为本地的yum源
  • 原文地址:https://www.cnblogs.com/why168888/p/4283596.html
Copyright © 2020-2023  润新知