`
javasogo
  • 浏览: 1817631 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C#集合

 
阅读更多

出处: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> 来存储购物车信息,而不需要任何的类型转化。

下面是简单的例子,包括声明,填充键值对,移除键值对,遍历键值对

常用的属性和方法如下:

常用属性

属性说明

Comparer

获取用于确定字典中的键是否相等的IEqualityComparer

Count

获取包含在Dictionary中的键/值对的数目。

Item

获取或设置与指定的键相关联的值。

Keys

获取包含Dictionary中的键的集合。

Values

获取包含Dictionary中的值的集合。

常用的方法

方法说明

Add

将指定的键和值添加到字典中。

Clear

Dictionary中移除所有的键和值。

ContainsKey

确定Dictionary是否包含指定的键。

ContainsValue

确定Dictionary是否包含特定值。

Equals

已重载。 确定两个Object实例是否相等。(从 Object继承。)

GetEnumerator

返回循环访问Dictionary的枚举数。

GetHashCode

用作特定类型的哈希函数。GetHashCode适合在哈希算法和数据结构(如哈希表)中使用。 (从Object继承。)

GetObjectData

实现System.Runtime.Serialization.ISerializable接口,并返回序列化 Dictionary实例所需的数据。

GetType

获取当前实例的Type(从 Object继承。)

OnDeserialization

实现System.Runtime.Serialization.ISerializable接口,并在完成反序列化之后引发反序列化事件。

ReferenceEquals

确定指定的Object实例是否是相同的实例。(从 Object继承。)

Remove

Dictionary中移除所指定的键的值。

ToString

返回表示当前ObjectString(从 Object继承。)

TryGetValue

获取与指定的键相关联的值。


分享到:
评论

相关推荐

    C#集合的概念

    学习C#集合时,开发者需要熟悉这些泛型集合的接口、属性和方法,以便在实际开发中选择合适的集合类型来满足特定需求。例如,如果需要快速查找元素,哈希集和字典可能更适合;如果需要保持元素的顺序,列表和双向链接...

    C# 集合对象遍历性能测试

    总结来说,C#集合对象的遍历性能取决于其内部实现,如ArrayList和List基于数组,而Dictionary基于哈希表,DataSet则代表了关系数据的处理。选择合适的集合类型,以及优化遍历策略,对于提升C#应用程序的性能至关重要...

    C#集合类 教程学习资源

    总的来说,C#集合类为开发者提供了丰富的工具来管理和操作数据。选择合适的集合类取决于具体需求,例如,是否需要保持元素插入顺序、是否需要快速查找(哈希表)或执行排序等。理解这些集合类的特性和用法对于编写...

    C#集合与字符窜处理C#集合与字符窜处理(源代码)

    在C#编程语言中,集合和字符串处理是两个至关重要的概念。集合是存储一组对象的容器,而字符串处理则是对文本数据进行操作的核心技术。在这个压缩包中,我们很可能是得到了一系列关于这两个主题的源代码示例,这些...

    c#集合ppt

    这篇“c#集合ppt”可能是一个关于C#集合的演示文稿,通过PPT的形式深入浅出地介绍了集合的概念、类型以及使用方法。下面我们将详细探讨C#中的集合及其相关知识点。 1. **集合的概念**:集合是将多个元素组织在一起...

    c#集合例子

    下面我们将深入探讨C#集合的相关知识点。 1. **ArrayList**: ArrayList是C#早期版本中常用的动态数组,它可以存储任意类型的对象。由于ArrayList内部是基于数组实现的,因此它提供了索引访问,但插入和删除元素时...

    C# 集合的常用方法

    在C#编程语言中,集合是一组对象的容器,提供了方便的数据存储和管理方式。本文将深入探讨ArrayList、Stack、Queue以及Dictionary这四种常见的集合及其基本操作方法。 1. ArrayList:ArrayList是C#中最早引入的动态...

    C# 集合应用

    在C#编程中,集合是用于存储一组相同类型对象的数据结构...理解并熟练运用这些C#集合的基本操作和特性,将有助于编写出更高效、易维护的代码。在实际开发中,应根据需求选择最适合的集合类型,以达到最佳性能和可读性。

    C# 集合的索引性能比较

    在C#编程中,集合是数据存储和管理的基础,它们提供了灵活的方式来进行数据操作。本篇文章将重点关注四个常见的集合类型:ArrayList、List、Hashtable和DataSet,并对它们的索引性能进行测试和对比。 首先,...

    C#集合性能测试

    日常工作中我们用到各种集合,但对于他们的性能比较则不是太清楚,因为片处的数据量不大,所以性能优势无法体现,本测试程序可以直观的测试各种集合的性能ArrayList 、List 、Dictionary、Hashtable

    C#集合容器(collection)详解

    ### C#集合容器(collection)详解 #### 一、集合的概念与分类 集合是C#语言中用于存储一组数据的一种机制,它可以是不同类型的对象。在.NET框架中,集合通过实现`System.Collections.ICollection`、`System....

    c#集合的学习读书笔记 学习心得

    本文将深入探讨C#集合的学习心得,并基于给出的部分内容进行详细阐述。 首先,数组作为基本的数据结构,有其固有的限制。数组大小在创建时即被固定,若需调整大小,必须借助`System.Array.Resize`方法,但这种方法...

    C#集合的运算好家伙

    C#集合的运算,集合之间的交集,并集,组合

    c#集合的一些小例子

    在C#编程语言中,集合是一种用于存储多个项的数据结构,它...通过实例练习和不断探索,你将能够更好地理解和运用C#集合的特性。在实际编程中,选择合适的集合类型,结合Linq等工具,可以极大地提高代码的可读性和性能。

    C#集合对象详解

    C#集合对象是编程中不可或缺的部分,理解并熟练掌握它们的使用能够帮助开发者更高效地管理数据。通过泛型,我们可以创建类型安全且性能良好的集合,而LINQ和并发支持则进一步增强了集合对象的实用性。在实际开发中,...

    c#集合学习笔记(.doc格式)

    C#集合是编程中不可或缺的一部分,它提供了存储和管理数据的有效方式。在这篇学习笔记中,我们将探讨几个关键的集合类,包括System.Array、ArrayList、Hashtable以及SortedList,以及它们的特点和常用方法。 首先,...

    C#正则表达式集合C# 正则表达式 集合C# 正则表达式 集合C# 正则表达式 集合

    通过以上对C#正则表达式集合的详细解释,我们可以看到正则表达式在实际开发中的强大功能,无论是数据验证还是文本处理等方面都能发挥重要作用。开发者可以根据具体需求灵活地应用这些正则表达式,提高程序的健壮性和...

    C#集合Dictionary中按值的降序排列

    集合Dictionary中按键排序较容易实现,本例实现了C#集合Dictionary中按值的降序排列。

    C#集合框架全景:探索.NET中的类型宝库

    ### C#集合框架全景:探索.NET中的类型宝库 C#是一种由微软开发的现代、面向对象的编程语言,基于.NET框架。它受到C++和Java的影响,具备一系列先进的功能特性,如垃圾回收、异常处理、泛型支持、LINQ(Language ...

    C#集合插图.xmind

    内部具体内容可以查看我的文章“C#集合总结(图文链接形式)”

Global site tag (gtag.js) - Google Analytics