ASP.NET初学:认识.NET的集合

asp.net|初学|集合

.NET中大量的集合对象会让人产生一些疑惑,这篇“导游”指南将帮助你在System.Collections名域中找到自己的方向。

集合提供了一种将任意对象格式化存储的方法,我们都知道在日常的程序设计中,它们是多么有帮助。.NET类库提供了一系列令人困惑的集合对象,而每种对象又有专门的用途,看上去这似乎阻碍了我们利用这些“财富”,其实,更多的选择意味着更加灵活,但同时也意味着更加复杂。因此,它应当引起你的关注,你应对在何种情况下使用那种类型的集合有充分的理解,随我一起来了解如何使用.NET的集合。

.NET集合的定义




从.NET的角度来看,一个集合可以被定义为一个实现了一个或多个System.Collections.ICollection、System.Collections.IDictionary和System.Collections.IList界面的对象,根据这一定义,我将在System.Collections名域空间范围内的“内建”的集合分为三类:

有序集合:只实现ICollection界面的集合,事实上的插入的顺序决定了对象从集合中被检索到的顺序,System.Collections.Stack类和System.Collections.Queue是两个ICollection集合的例子。

索引集合:实现了IList界面的集合,他们的内容可以通过一个以零为基准的数字索引中检索到,就像数组一样。System.Collections.ArrayList对象是索引集合的一个例子。

键值集合:实现了IDictionary界面的集合,包含了可以按照某些关联键值检索到的项目,IDictionary的内容通常以键值为基础按照某些形式进行排序,在检索时,这些内容可以按照排好序的枚举表示。System.Collections.HashTable类实现了IDictionary的界面。

正如你所看到的,一个给定集合的功能是由专门的界面或它所实现的界面控制的,如果你对面向对象程序设计没有大量的接触,这一点看上去即使不是毫无意义,也会让人非常困惑。然而,你应当知道,以这种方式建立一个对象的功能,不仅给与了相似的对象一系列相似的方法签名,而且还允许在必要的时候将这些对象当作本质上相同的类来对待,这就是在面向对象程序设计中所说的多态性。

System.Collections的“导游”指南

在System.Collections名域空间中包括了6个内建的普通集合,你可以在程序中使用它们,另外有少许特殊的集合可以在System.Collections.Specialized中找到,你会发现在某些场合中它们非常有用。在少数例外的情况下,每一个特殊的集合与一个内建的集合拥有相似的功能,让我们先来看一下这些内建的集合和一些不太深奥的特殊集合。

堆栈与队列

System.Collections.Stack和System.Collections.Queue类是只实现了ICollection界面的类,它们将System.Object类型的项目按照加入的顺序排列到集合中,集合中的对象只能按照以下的顺序获取到:堆栈是后进先出,而队列是先进先出,通常,你会在以下情况中考虑使用这些集合:

项目的接收和处理顺序很重要时;

你可以在处理一个项目之后删除它;

你不需要在集合中访问任意项目;

数组表

System.Collections.ArrayList类是只实现了IList界面的类,数组与集合的混合体是对它最好的描述,数组表将项目按照加入的顺序排列,每个项目被分配一个索引标识符,依据相关的索引号可以按照任意顺序检索,数组表会因项目的增加而变大,这使它比一般的数组更灵活,然而,所有可被转化为System.Object的项目均可被数组表接受,因而它比传统数组的系统开销要大很多,而且它也不是强类型(strongly typed)。

时间: 2024-08-17 16:17:17

ASP.NET初学:认识.NET的集合的相关文章

ASP编程技术学习:Cookie集合

     Cookie是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个Web站点会话之间持久地保持数据.Request和Response对象都有一组Cookie. Request.cookie集合是一系列Cookie,从客户端与HTTP Request一起发送到Web服务器.反过来,如果你希望把Cookie发送到客户机,就可以使用Response.cookie 1.ExpiresAbsolute属性 该属性可以赋一个日期,过了这个日期Cookie就不能再被使用了.通过给E

ASP.NET初学:建立ASP.NET开发平台

asp.net|初学     了解整个.NET 架构后,接下来我们就要建立ASP.NET 的开发平台了.要建立ASP.NET 平台需要的软件如下:     Windows 2000      IIS 5.0     NET Framework SDK     Internet Explorer 5.5 Internet Information Server 的安装  要成为网站服务器,只要有IIS(Internet Information Services)的服务程序即可.IIS 最主要的功能大

如何在ASP中浏览和修改Cookies集合

cookie|cookies|集合 Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多.Cookie是一小块由浏览器存贮在客户端系统上的文本,且随同每次请求发往它们应用于的域中的服务器. ASP使得应用cookie较为容易,可以从Request对象的Cookies集合中获得所有随同请求发出的cookie值,并可创建或修改cookie,通过Response对象的Cookies集合发回给用户. Cookie包含可用两种方式构造的信息,单值cookie提供

ASP技巧:提高使用Request集合的效率

request|集合|技巧 提高使用Request集合的效率 访问一个ASP集合来提取一个值是费时的.占用计算资源的过程.因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多.因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量. 例如将代码写成下面的形式以加快脚本引擎处理速度: strTitle=Request.Form("Title") strFirstName=Request.Form("FirstName&quo

ASP中使用Form和QueryString集合

当用户填写页面<FORM>内容时所提供的全部值,或在浏览器地址栏输入在URL后的值,通过Form和QueryString集合为ASP脚本所用.这是在ASP代码中访问值的一种简单方法. 1. 访问ASP集合的一般技术 大多数ASP集合与在VB中见到的普通集合相差不多.实际上,它们是值的数组,但能通过使用一个文本字符串键(对大小不敏感)以及一个整型索引进行访问.因此,假如客户端Web页面包含的<FORM>如下: <FORM ACTION="show_request.as

在ASP中访问和更新Cookies集合

Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多.Cookie是一小块由浏览器存贮在客户端系统上的文本,且随同每次请求发往它们应用于的域中的服务器. ASP使得应用cookie较为容易,可以从Request对象的Cookies集合中获得所有随同请求发出的cookie值,并可创建或修改cookie,通过Response对象的Cookies集合发回给用户. Cookie包含可用两种方式构造的信息,单值cookie提供其值给代码是通过一个一般的类ASP集

分享下Asp.Net面试题目及答案集合_实用技巧

1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 在同一命名空间内可以访问. 2 .列举asp.net 页面之间传递值的几种方式. 答. 1.使用querystring, 如....?id=1; response. redirect()...

asp.net中linq查本集合中不包含于另一个集合的元素

 代码如下 复制代码 int[] num0 = { 28, 32, 14 };int[] num1 = {14,15,16}; 如上,我想把num0中不包含于num1的元素都找出来,其正确结果应该是28,32.早上看到原来linq可以写多个from字句,之后就想到了这样的写法:  代码如下 复制代码 int[] num0 = { 28, 32, 14 };int[] num1 = {14,15,16}; var qq = from n1 in num0from n2 in num1where n

asp.net php asp jsp 301重定向的代码(集合)_其它综合

1.Linux主机重定向 Godaddy的Liunx主机,Godaddy本身已经支持Apache,所以直接创建一个.htaccess文件就可以了,一般来说,在本地无法创建.htaccess的时候可以先创建一个txt格式文件,上传到根目录的时候再重命名为".htaccess"就可以了.网上很多如何进行 301重定向的教程,无论是整站重定向还是单页重定向.下面就以我的www.jb51.net为例 1.1 无www域名转移到www域名 复制代码 代码如下: RewriteEngine on