永发信息网

c#分析四种常见集合有什么区别

答案:1  悬赏:20  手机版
解决时间 2021-03-15 21:44
c#分析四种常见集合有什么区别
最佳答案
  • ArrayList
    ArrayList类似于数组,有人也称它为数组列表。62616964757a686964616fe78988e69d8331333363366231ArrayList可以动态维护,而数组的容量是固定的。
    它的索引会根据程序的扩展而重新进行分配和调整。和数组类似,它所存储的数据称为元素,它所保存的元素数就是它的容量。默认初始容量为0,在使用它时,需引入命名空System.Connections;以下代码可以定义一个ArrayList:

    using System.Collections;
    //创建容量为0的ArrayList对象
    ArrayList myList = new ArrayList();
    //创建容量为5的ArrayList对象
    ArrayList myList = new ArrayList(5);
    //获取对象中实际包含的元素数
    int num = myList.Count();ArrayList通过Add()方法添加元素,其方法返回一个Int类型的值,这个值代表所添加的元素在集合中的索引。
    参数:如果向ArrayList中添加的元素是值类型,那么这些元素就会自动装箱处理转换为Object引用类型,然后保存,所以ArrayList中的所有元素都是对象的引用。
    删除ArrayList中的元素有三种方法,分别为:
    对象名.RomoveAt(int index);
    对象名.Romove(Object value);
    对象名.Clear();(这种方法会将集合中的所有元素删除,俗称"清空"~~~)
    2.HashTable
    C# /提供了一种称为HashTable的数据结构,通常称为哈希表,有的人称它为"字典".HashTable的数据是通过键(Key)和值(Value)来组织的,同ArrayList一样,它也属于System.Collections命名空间中,它所存放的每个元素都是键/值对.以下为HashTable的常用方法和属性:
    属性名称:Count
    属性名称:Keys
    属性名称:Values  说明: 获取包含在HashTable中值的集合
    方法名称:Add(Object key,Object Value)
    方法名称:Remove(Object Key)
    方法名称:Clear()
    和ArrayList不同,访问HashTable元素时可以直接通过键名来获取具体值,同样,由于值类型是Object.所以当得到一个值时也需要通过类型转换得到指定类型的对象.
    3. 泛型集合: List<T>


    泛型是C#2.0中的一个新特性。泛型引入了一个新概念:类型参数。通过使用类型参数(T),减少了运行时强制转换成装箱操作的风险。通过泛型集合可以最大限度的重用代码、保护类型的安全及提高性能。
    定义一个 List<T>泛型集合的方法如下:
    List<T> 对象名 = new List<T>();
    List<T>添加元素、获取元素、删除元素以及遍历和ArrayList用法都是类似的,但 List<T>保障了类型的安全性。在获取元素时无需进行类型转换.下面我们把List<T>和ArrayList作以比较
    不用点:List<T>对所保存元素做类型约束,而ArrayList可以增加任意类型。添加、读取值类型元素 List<T>无需拆箱装箱,而ArrayList需要做拆箱、装箱处理。
    相同点:通过索引访问集合中的元素,添加、删除元素方法相同
    4.泛型集合Dictionary<K,V>
    它具有泛型的全部特性,编译时检查类型约束,获取元素时无需类型转换,并且它存储数据的方式和HashTable类似。也是通过Key/Value对元素保存的。定义语法为:
    Dictionary<K,V>对象名 = new Dictionary<K,V>
    <K,V>中的K表示集合中Key的类型,V表示Value的类型,它的含义和List<T>是相同的.例如:
    Dictionary<string,SE> engineers = new Dictionary<string,SE>();
    在这个集合中,Key类型是string类型,Value是SE类型。 下面我们把 Dictionary<K,V> 和HashTable作以比较:
    不同点: Dictionary<K,V>对所保存的元素做类型约束,而HashTable可以增加任何类型。 Dictionary<K,V>添加、读取值类型元素无需拆箱、装箱,而HashTable需要做拆箱、装箱处理
    相同点:通过Key获取Value, 添加、删除、遍历元素方法相同
  • 我要举报
    如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    大家都在看
    逐位相加是什么意思
    请问女生的身高大约什么时候停止增长?现在快1
    如何销售外墙保温材料 谈外保温工程
    华为千元以下的机子哪个好 想给麻麻买一个手
    我家狗狗为什么老踩人脚
    宾海汽车美容养护中心在什么地方啊,我要过去
    我单位是一般纳税人,现开通了网上银行,现将
    建筑钢材十厘米罗纹铁价格多少钱一吨
    “读书有三到,谓心到,眼到,口到。”“心到
    我的电脑用GTX650显卡合适吗?
    为什么我突然觉得自己不是凡人,我也不知道为
    S244怎么去啊,有知道地址的么
    海景城北门在哪里啊,我有事要去这个地方
    中文名雪霏求英文名。谢谢。
    4.2+6.7×1.8怎么简便计算
    推荐资讯
    电流电压稳定为什么灯泡会不定时眨
    怎么注册没有区域的公司申请总局名称条件
    中国第一汽车公司检测服务中心中国实验室国家
    风尘仆仆地的拼音
    用刘和罗两个字组成四字成语,同音
    小米3 NFC功能在哪里?
    玩英雄联盟的时候经常会中途突然被弹出来,然
    花缘花卉园艺怎么去啊,有知道地址的么
    华为荣耀6夜晚照相星空怎么设置
    黄山市七七七电子公司在什么地方啊,我要过去
    塞班诺基亚x6手机行车记录仪软件
    最新的2015柯南大电影叫什么
    正方形一边上任一点到这个正方形两条对角线的
    阴历怎么看 ?