第三章使用集合相关数据

Posted wh1520577322

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三章使用集合相关数据相关的知识,希望对你有一定的参考价值。

ArrayList是一种动态数组,在new的时候,可以不指定长度,当你添加数据的时候,发现容量不够,他会自动扩容。
引入system.collections 命名空间--实例化ArrayList对象
using system.collections(引入命名空间)
ArrayList engineers=new ArrayList();实例化一个对象
ArrayList engineers=new ArrayList(5)可指定长度

C#3.0语言的新特征
由一系列元素初始化构成,包围在{和}之间并使用逗号进行分割

访问ArrayList单个元素
(类型)arrayli[index] //按指定索引(下标)取得对象
  ↓
需要类型转换

se engineer=(se)engineers[0];
messagebox.show(engineer.sayhi())

arraylist.remove(对象名)//删除指定对象名的对象
arraylist.removeat(index)//删除指定索引的对象
ArrayList.clear()//清楚集合内所有元素
Add(objiec obj)添加
insert(int index,object values)在集合指定位置添加元素
-----------------------------------------------------------
属性:统计整个集合元素总量 Count
整个集合总共能容纳多个元素capacity
方法():清除集合中所有元素的方法 clear();

C#提供另一种集合  动态可维护长度  可通过关键字检索  集合hashtable

arraylist每个元素对应一个索引
hashtable 通常称为哈希表
根据键(key)可以查到相应的值(value)

ArrayList集合可以动态维护,访问元素时需要类型转换
hashtable的元素都是以键/值对的形式存在不能通过索引访问元素,只能通过key访问value
使用集合存储数据时容易出现问题:
对象存储不易控制
类型转换容易出错


泛型<T>最常见的用途是创建集合类
泛型集合可以约束集合内元素类型
典型泛型集合list<T>  dictionary<k,v>

<t> <k,v>表示泛型集合中的元素类型

list<se> engineers =new list<se>();
遍历
foreach(SE se in engineers){
messagebox.show(se.sayhi());

}
dictonary<k,v>通常称为字典
<k,v>约束集合中元素类型
编译时检查类型约束
无需装箱拆箱操作
泛型
操作的数据类型被定义为一个参数
泛型类
public class 类名<T>
{
T指类型参数,代表具体的数据类型,可以是类的类型也可以是基本数据类型

}

泛型的重要的重要性
实现代码的重用,未来的主流技术
性能高,避免繁琐的装箱拆箱
提供了更好的类型安全性
clr支持泛型

 

  this.dataGridView1.DataSource = new BindingList<SE>(li);绑定datagrideview 的代码

重新绑定datagrideview 的代码

     BindingSource bs = new BindingSource();
                bs.DataSource = li;
                this.dataGridView1.DataSource = bs;

 

以上是关于第三章使用集合相关数据的主要内容,如果未能解决你的问题,请参考以下文章

20172323 2018-2019-2 《程序设计与数据结构》第2周学习总结

浙大《数据结构》第三章:树(上)

第三节——模式

第三节: Dart 中常用集合 List/Map

JavaSE-集合

20172304 《程序设计与数据结构》 第二周学习总结