且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

第06篇:C#星夜拾遗之几个重要的集合类

更新时间:2022-09-13 09:31:19

技术之外的话

苏轼《后赤壁赋》:有客无酒,有酒无肴;月白风清,如此良夜何?技术员在做技术之余,欣赏一下古诗词也是很好的。呵呵,这是一些闲话。

前言

C中要保存一组数据,通常要做一个数组或链表来存放。在C#中,我们不用这么麻烦了,因为C#中提供了一些实用的集合类,通过这些集合类,可以方便的管理一组或多组内存对象。这些集合包括ArrayListHashTableList<T>等。

ArrayList

MSDN中对ArrayList的介绍只有一句话:使用大小可按需动态增加的数组实现 IList 接口。这里推荐ArrayList的原因是在C#中不支持动态数组,可以通过实用ArrayList实现动态数组的功能。

ArrayList的操作有常用的AddInsertRemoveIndexOf。通过这些方法可以实现器大部分操作。对于这些操作可以参考这里,或请参见MSDN中的说明ArrayList成员

Hashtable

MSDN中的描述:表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。

有些朋友可能手工的实现过Hashtable的功能。在C语言中散列算法是很重要的,遗憾的是笔者没有学好,所学的知识只能够草草应付老师作业了事。好在C#中提供了Hashtable类来实现键/值对的操作功能。

Hashtable的操作更为简单,Add方法用来添加一个键/值对,通过键可以直接访问到值,也就是说,如果定义了一个dtHashtable对象,则可以通过dt[key],得到一个Object对象的Value,如果这个key值不存在,则会返回一个null

这些操作都是很方便和使用的,不需要多说。希望了解的朋友可以参考MSDN中的HashtableHashtable成员

List<T>

MSDN中的描述:表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。

这里的强类型类表即所谓的泛型。什么是泛型呢?单单这一个问题就够讨论上几页了,我只简单的说明:所谓泛型,指的是T可以是任何其它类型,但必须是一个固定的类型。当这个类型确定后,List<T>对象只能是T类的实例,这是我对泛型用法上的认识,希望了解正解的朋友可以参考C#泛型简介

List<T>在用法上并没有什么特别,C#为它提供了丰富的操作,可以参照MSDN中的List<T>List<T>成员对其进行了解。

结束语

这么快就结束了,这篇其实只提出了这三个类,并没有对它们的用法进行说明。我将其列出,只是为了告诉初学者朋友,常用的集合中,这三个是很重要的。希望深入了解,请参照MSDN




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2010/05/15/1736474.html,如需转载请自行联系原作者