|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学习asp.net两个月有余了,除了对html、web控件比较熟悉(应该是说都能理解和接受)之外,竟不知道自己还会什么。看了两本书:《精通asp.net网络编程》(人民邮电出版社)、《asp.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的项目都可被数组表承受,因此它比传统数组的体系开支要年夜良多,并且它也不是强范例(stronglytyped)。
如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。 |
|