出处:http://www.cnblogs.com/feisky/archive/2009/10/29/1591956.html
System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。
System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。
System.Collections.Specialized 命名空间包含专用的和强类型的集合,例如,链接的列表词典、位向量以及只包含字符串的集合。
在System.Collections命名空间中提供了许多接口:
- IEnumerable循环集合项目
- ICollection可以获取集合中项目个数
- IList项目列表
- IDictionary提供了键码索引
(一)ArrayList 类:使用大小可按需动态增加的数组。
(二)Queue:队列,表示对象的先进先出集合。Enqueue方法入队列,Dequeue方法出队列。
(三)Stack:栈,表示对象的简单的后进先出非泛型集合。Push方法入栈,Pop方法出栈。
(四)哈希表
一、哈希表(Hashtable)简述
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.
二、哈希表的简单操作
在哈希表中添加一个key/value键值对:HashtableObject.Add(key,value);
在哈希表中去除某个key/value键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素: HashtableObject.Clear();
判断哈希表是否包含特定键key: HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
三、遍历哈希表
遍历哈希表需要用到DictionaryEntry Object,代码如下:
四、对哈希表进行排序
对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
(五)SortedList类:表示键/值对的集合,与哈希表类似,区别在于SortedList中的Key数组排好序的。
(六)Dictionary 泛型集合
泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。
很多非泛型集合类都有对应的泛型集合类,下面是常用的非泛型集合类以及对应的泛型集合类:
非泛型集合类 |
泛型集合类 |
ArrayList |
List<T> |
HashTable |
DIctionary<T> |
Queue |
Queue<T> |
Stack |
Stack<T> |
SortedList |
SortedList<T> |
我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据类型相对确定的化 用 Dictionary<TKey,TValue> 集合类来存储数据就方便多了,例如我们需要在电子商务网站中存储用户的购物车信息( 商品名,对应的商品个数)时,完全可以用 Dictionary<string, int> 来存储购物车信息,而不需要任何的类型转化。
下面是简单的例子,包括声明,填充键值对,移除键值对,遍历键值对
分享到:
相关推荐
学习C#集合时,开发者需要熟悉这些泛型集合的接口、属性和方法,以便在实际开发中选择合适的集合类型来满足特定需求。例如,如果需要快速查找元素,哈希集和字典可能更适合;如果需要保持元素的顺序,列表和双向链接...
总结来说,C#集合对象的遍历性能取决于其内部实现,如ArrayList和List基于数组,而Dictionary基于哈希表,DataSet则代表了关系数据的处理。选择合适的集合类型,以及优化遍历策略,对于提升C#应用程序的性能至关重要...
总的来说,C#集合类为开发者提供了丰富的工具来管理和操作数据。选择合适的集合类取决于具体需求,例如,是否需要保持元素插入顺序、是否需要快速查找(哈希表)或执行排序等。理解这些集合类的特性和用法对于编写...
在C#编程语言中,集合和字符串处理是两个至关重要的概念。集合是存储一组对象的容器,而字符串处理则是对文本数据进行操作的核心技术。在这个压缩包中,我们很可能是得到了一系列关于这两个主题的源代码示例,这些...
这篇“c#集合ppt”可能是一个关于C#集合的演示文稿,通过PPT的形式深入浅出地介绍了集合的概念、类型以及使用方法。下面我们将详细探讨C#中的集合及其相关知识点。 1. **集合的概念**:集合是将多个元素组织在一起...
下面我们将深入探讨C#集合的相关知识点。 1. **ArrayList**: ArrayList是C#早期版本中常用的动态数组,它可以存储任意类型的对象。由于ArrayList内部是基于数组实现的,因此它提供了索引访问,但插入和删除元素时...
在C#编程语言中,集合是一组对象的容器,提供了方便的数据存储和管理方式。本文将深入探讨ArrayList、Stack、Queue以及Dictionary这四种常见的集合及其基本操作方法。 1. ArrayList:ArrayList是C#中最早引入的动态...
在C#编程中,集合是用于存储一组相同类型对象的数据结构...理解并熟练运用这些C#集合的基本操作和特性,将有助于编写出更高效、易维护的代码。在实际开发中,应根据需求选择最适合的集合类型,以达到最佳性能和可读性。
在C#编程中,集合是数据存储和管理的基础,它们提供了灵活的方式来进行数据操作。本篇文章将重点关注四个常见的集合类型:ArrayList、List、Hashtable和DataSet,并对它们的索引性能进行测试和对比。 首先,...
日常工作中我们用到各种集合,但对于他们的性能比较则不是太清楚,因为片处的数据量不大,所以性能优势无法体现,本测试程序可以直观的测试各种集合的性能ArrayList 、List 、Dictionary、Hashtable
### C#集合容器(collection)详解 #### 一、集合的概念与分类 集合是C#语言中用于存储一组数据的一种机制,它可以是不同类型的对象。在.NET框架中,集合通过实现`System.Collections.ICollection`、`System....
本文将深入探讨C#集合的学习心得,并基于给出的部分内容进行详细阐述。 首先,数组作为基本的数据结构,有其固有的限制。数组大小在创建时即被固定,若需调整大小,必须借助`System.Array.Resize`方法,但这种方法...
C#集合的运算,集合之间的交集,并集,组合
在C#编程语言中,集合是一种用于存储多个项的数据结构,它...通过实例练习和不断探索,你将能够更好地理解和运用C#集合的特性。在实际编程中,选择合适的集合类型,结合Linq等工具,可以极大地提高代码的可读性和性能。
C#集合对象是编程中不可或缺的部分,理解并熟练掌握它们的使用能够帮助开发者更高效地管理数据。通过泛型,我们可以创建类型安全且性能良好的集合,而LINQ和并发支持则进一步增强了集合对象的实用性。在实际开发中,...
C#集合是编程中不可或缺的一部分,它提供了存储和管理数据的有效方式。在这篇学习笔记中,我们将探讨几个关键的集合类,包括System.Array、ArrayList、Hashtable以及SortedList,以及它们的特点和常用方法。 首先,...
通过以上对C#正则表达式集合的详细解释,我们可以看到正则表达式在实际开发中的强大功能,无论是数据验证还是文本处理等方面都能发挥重要作用。开发者可以根据具体需求灵活地应用这些正则表达式,提高程序的健壮性和...
集合Dictionary中按键排序较容易实现,本例实现了C#集合Dictionary中按值的降序排列。
### C#集合框架全景:探索.NET中的类型宝库 C#是一种由微软开发的现代、面向对象的编程语言,基于.NET框架。它受到C++和Java的影响,具备一系列先进的功能特性,如垃圾回收、异常处理、泛型支持、LINQ(Language ...
内部具体内容可以查看我的文章“C#集合总结(图文链接形式)”