转载:Collection -> .Net集合类型大全,只要灵活运用可以节省很多开发时间和提高程序运行效率

来源:互联网 发布:软件开发薪资待遇 编辑:程序博客网 时间:2024/05/22 02:10
 http://blog.csdn.net/chengking/archive/2005/08/27/466286.aspx
     

★★【迎接光辉岁月|说声真的爱你|踏着灰色轨迹|遥望大地情人】★         

[首页♂]  DotNet 【ChengKing(ZhengJian)】

  CSDN |  技术中心 |  BLOG首页 |  我的首页 |  我的文章 |  联系作者 |  聚合  |   |  搜索 |  登录
  155篇原创: 0篇翻译: 0篇转载: 307695次点击: 599个评论: 10个Trackbacks

公告

Mr. Jian Zheng



Asp.net 2.0课程(PPT及
示例代码下载)


.NET系列丛书

C# GAME

网站(学习/源代码资源下载)

当前在线 1

拥有.net力量!


发挥.net威力!


震憾.net天下!



(2006 AND 2007 MS-MVP)




订阅本Blog

+收藏至线上最爱Live
Subscribe by Anothr
Add to Google
加入至Live.com同步显示

订阅到抓虾


天气预报:


时间:

日历:

月 下月 : 上月 日 一 二 三 四 五 六                                                                                    
相关文章,我尽量提供了图片示例和代码下载链接!
[如果遇到问题请给我发信息]
您可以直接点击相应链接进行下载 :)

如果文章对您有所帮助,请支持一下!
如果文章有不正确的地方,敬请指点!
多谢!!!!!

请选择下面链接,可以分类别的阅读文章:

最近访客

prophet08 的头像
prophet08 duibudui 的头像
duibudui zhrren2 的头像
zhrren2 westlife207 的头像
westlife207 bobdreamer 的头像
bobdreamer catkit 的头像
catkit ericfine 的头像
ericfine bohua2008 的头像
bohua2008 jeanso 的头像
jeanso Ccode 的头像
Ccode

文章

  • .net Wap开发(RSS)
  • Ajax(Asp.net 2.0)(RSS)
  • Asp.net 2.0(RSS)
  • Asp.net 2.0 自定义控件开发(RSS)
  • Asp.net 控件技巧(RSS)
  • Asp.Net专栏(RSS)
  • C# Study(RSS)
  • C#之Collection探讨(RSS)
  • C/C++(RSS)
  • ComponentOne制作图表(RSS)
  • Excel operate(RSS)
  • JavaScript学习/技巧(RSS)
  • SQL Server专栏(RSS)
  • Thread Study(RSS)
  • VB.Net(RSS)
  • 分布式编程(RSS)
  • 故障排除(RSS)
  • 情感文章(RSS)
  • 软件作品(RSS)
  • 网站资源(RSS)

收藏

相册

  • Microsoft MVPs
  • 九峰山留念
  • 在 OWIWP 日子

Good Blogs

  • BennyMavis(水晶报表)(RSS)
  • Bruce Zhang(RSS)
  • cityhunter172(RSS)
  • dudu(RSS)
  • goody9807(RSS)
  • huangkw007(RSS)
  • LoveCherry(RSS)
  • Rickie Lee(RSS)
  • saucer(RSS)
  • singlepine(RSS)
  • TerryLee(RSS)
  • zjcxc(RSS)
  • 中国龙(RSS)
  • 吕震宇(RSS)
  • 孟子E章(.net)(RSS)
  • 孟宪会(RSS)
  • 寒羽枫(RSS)
  • 朱春雷[软件工程](RSS)
  • 李宁(RSS)
  • 李维(RSS)
  • 清清月儿(RSS)
  • 白慧冬(青润)[软件工程](RSS)
  • 胡百敬(RSS)
  • 蝈蝈俊.net(RSS)
  • 袁峰(RSS)
  • 谭振林(RSS)
  • 速马(RSS)
  • 陕北吴旗娃(RSS)
  • 青润意愿(RSS)
  • 飞驰之剑(RSS)
  • 马宁(RSS)

论坛社区

  • CSDN社区(RSS)
  • MSDN网站(RSS)
  • 博客堂(RSS)
  • 微软Asp.net 2.0官方网站(RSS)
  • 微软Visual Studio 专区(RSS)
  • 微软中国社区(RSS)
  • 微软中文技术社区(RSS)

其它链接

  • 2006年100首好歌(RSS)
  • 2006年十二星座运程目录(RSS)
  • 2006年十二生肖运程运势(RSS)
  • 地图(RSS)

文章链接

  • C# Excel报表(RSS)
  • CSDN新版图形验证码初级识别 (RSS)
  • JavaScript技巧(一)(RSS)
  • JavaScript技巧(二)(RSS)
  • MINE类型(RSS)
  • Share Point(RSS)
  • 多级下拉菜单(singlepine)(RSS)
  • 星月同辉 e路随行(文件下载)(RSS)

我的其它Blog

  • My IT博客网 Blog(RSS)
  • My 博客园 Blog(RSS)
  • My 博客园 blog(RSS)

学习站点

  • ASP.NET架构师[群组](RSS)
  • Asp.net频道专家圈(RSS)
  • King's CSDN下载资源(RSS)
  • Microsoft XNA游戏开发网(RSS)
  • 象棋研究(RSS)

优秀团队列表

  • .Net 商业智能(RSS)
  • .NetFramework3.0&WinFX团队(RSS)
  • .NET控件与组件开发(RSS)
  • ASP.NET AJAX学习(RSS)
  • Asp.net(C#)四层架构自助建站系统(RSS)
  • Design&Pattern团队(RSS)
  • Dot Net Web服务和Windows服务开发(RSS)
  • DotNet频道→ASP.NET(RSS)
  • Enterprise Library(RSS)
  • O/R Mapping团队(RSS)
  • SharePoint团队(RSS)
  • Skin设计小组(RSS)
  • SOA研究室(RSS)
  • Windows Mobile 应用开发(RSS)
  • 博客园培训团队(RSS)
  • 开源项目团队(RSS)
  • 自动识别与数据采集(RSS)
  • 计算机图形学(RSS)

存档

  • 2007年07月(2)
  • 2007年06月(1)
  • 2007年05月(4)
  • 2007年04月(8)
  • 2007年03月(3)
  • 2007年01月(7)
  • 2006年12月(4)
  • 2006年08月(10)
  • 2006年07月(3)
  • 2006年06月(5)
  • 2006年05月(2)
  • 2006年04月(3)
  • 2006年03月(2)
  • 2006年02月(3)
  • 2006年01月(26)
  • 2005年12月(4)
  • 2005年11月(25)
  • 2005年10月(34)
  • 2005年09月(3)
  • 2005年08月(2)

最近评论

  • woshifeng2008:好东西!收藏!!
  • annesammy:KING哥有才呀,好好向你学习~~呵呵
  • annesammy:人贵立志~~
  • LZC:我 也正在做类似功能的TreeView,但是想要访问远程服务器上共享文件夹,还是不行。因为登录远程服务器要输入用户名和密码,用Windows自己的资 源管理器访问时可以自动弹出对话框来输入密码,但我自己写的程序不能弹出对话框,就访问不了远程服务器了,有没有方法,让程序弹出Windows自带的对 话框?
  • qgcsoft:话虽然说的不错,但能做到的人微乎其微哦.


作者tag:windows/.net c#之collection探讨 CSDN 推荐tag:排序 属性 
上一篇: 代码操作IIS之虚拟目录 | 下一篇: 用SqlCommandBuilder 实现批量更新

 Collection -> .Net集合类型大全,只要灵活运用可以节省很多开发时间和提高程序运行效率

集合

  ((I)).集合类型 
    1.一般集合
        I.Array
            a.Array中的秩是Array中的维数.一个Array可以有一个或多个秩.
              Array具有固定的容量.如果有可变容量,则用Array.CreateInstance,其可以不从零开始存储.
        II.ArrayList集合类型
            a.是数组的复杂版本.Array是数组是固定的,而ArrayList类是根据需要自动扩展的.如果更改了Array.Capacity属性的值,则自动              进行内存重新分配和元素复制.
            b.ArrayList提供添加/或移除某一范围元素的方法.在Array中,只能一次获取或设置一个元素的值.
            c.使用 Synchronized方法可以很容易地创建ArrayList的同步版本.而Array将一直保持它,直到用户实现同步为止.
            d.ArrayList提供将只读和固定大小包装返回到集合的方法.而Array不提供.
            e.Array提供ArrayList所不具有的某些灵活性.
                I.可以设置Array的下限,但ArrayList的下限始终为零.
                II.Array可以具有多个维度,而ArrayList始终是唯一的.
                III.Array是特定类型(不是Object),比ArrayList性能好.ArrayList在存储和检索时经常发生拆箱和装箱操作现象.                  
        III.哈希表集合
            a.Hashtable类基于IDictionary接口,因此该集合中的每一元素是键和值对.
            b.Object.GetHashCode方法为其自身生成哈希代码.还可以通过使用Hashtable构造函数,为所有元素指定一个哈希函数.
        IV.SortedList集合类型
            a.SortedList类类似于Hashtable和ArrayList间的混合.
            b.SortedList的每一元素都是键对值,提供只返回键列表或只返回值列表的方法.
            c.如果想要一个保留键和值的集合,并且还需要索引的灵活性,则使用SortList.
        V.队列集合类型
            a.如果需要以信息在集合中存储的相同顺序来访问这些信息,请使用Queue.
            b.Enqueue将一个元素添加到Queue的队尾. Dequeue从Queue处移除最旧的元素. Peek从Queue的开始处返回最旧的元素,但不将从Queue中移除.
        VI.堆栈集合类型
            a.如果需要以信息在集合中存储的相反顺序来访问这些信息,请使用Queue.
            b.Push在Stack的顶部插入一个元素. Pop在Stack的顶部移除一个元素. Peek返回处于Stack顶部的元素,但不将其从栈顶上移除.
     2.位集合
        I.BitArray
           a.BitArray是一个集合类,容量与计数相同.通过增加Length属性来将元素添加到BitArray中;通过降低Length属性将元素删除.
           b.独特方法,如 And/Or/Xor/Not/SetAll.
           c.位于 System.Collections中.
        II.BitVector32
           a.速度快,精确存储32位,并且同时存储标志位和小整数.
           b.位于 System.Collections.Specialized中.
     3.专用集合
        I.NameValueCollection
           a.基于NameObjectCollectionBase,但NameValueCollection可以接受每个键多个值,而 NameObjectCollectionBase接受每个键,但只有一个值.  
   ((2)).选择用哪种集合
     *** Queue或Stack:需要一个序列列表,其中的元素在检索后放弃.否则,用其它集合.
     *** Queue或Stack:按一定的顺序访问这些元素(先进先出,后进先出),如果随机,用其它集合.
     *** 是否通过索引访问每一个元素?
         * ArrayList和StringCollection 提供通过元素的从零开始的*索引*对其元素进行访问.
         * (Hashtable) (SortedList) (ListDictionary) (StringDictionary) 提供通过元素的*键*对其元素进行访问
         * (NameObjectCollectionBase) 和 (NameValueCollection) 提供或者通过元素的从零开始的*索引*或者通过元素的*键*对其元素进行访问.
     *** 每一元素将包含一个值/一个值和一个键的组合还是一个键和多个值的组合?
         * 一个值: 使用基于 IList 的任何集合
         * 一个键和一个值: 使用基于 IDictionary 的任何集合.
         * 一个键和多个值: 使用 System.Collections.Specialized 命名空间中的 NameValueCollection 类.
     *** 是否需要用与元素方式不同的方式对元素排序?
         * Hashtable 通过键的哈希代码对元素进行排序.
         * SortedList 基于 IComparer 实现,通过键对元素进行排序.
         * ArrayList 提供 Sort方法该方法将 IComparer 实现作为一个参数采用.
     *** 是否需要信息的快速搜索和检索?
         * 对于小集合(十项或更少),ListDictionary 快于 Hashtable.
     *** 是否需要只接受字符串的集合?
         * StringCollection (基于 IList) 和 StringDictionary (基于 IDictionary) 位于 System.Collections.Specialized 命名空间中.
 
 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=466286


[收藏到我的网摘]  【ZhengJian(ChengKing)】发表于2005年08月27日 12:50:00




特别推荐:
想在这里投放广告?点击查看详情
关闭
  • 参加2007调查,赢取Wii大奖
    2007调查风云再起,头奖得Wii游戏机。 每周50好礼送,周周送不停。
  • “3G移动开发”免费试听
    一般水平可不敢让你来试听!! 3月10日 北京交通大学举行
  • 传Sun中国与英特尔合作引发人事震动
    美国服务器巨头Sun公司中国区近期发生人事震动 多名职员与一名高管已于近日离职,据悉,……
  • “3G移动开发”免费试听
    一般水平可不敢让你来试听!! 8月 北京交通大学举行
  • 如何给OpenSolaris增加一个系统
    给操作系统增加系统一个简单的系统调用是熟悉OS的内 本文给出了在Solaris内核中增加一个系统调用
上一篇: 代码操作IIS之虚拟目录 | 下一篇: 用SqlCommandBuilder 实现批量更新

����

#   王冀波 发表于2006-03-28 13:31:00  IP: 218.107.151.*
看了你的内容,有些是从MSDN上摘下来的,能不能加上一些你自己的见解,我觉得更有利于其他人阅读,谢谢

#   ChengKing 发表于2006-03-28 21:40:00  IP: 218.30.165.*
相对于MSDN,我比较喜欢看书, 以上是我从多本书中整理出来的.
不过,有好多书其内容是摘自MSDN的! 因为MSDN是最好的书!

发表评论

  大名: 网址: 评论