惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

博客园 - 追风逐云.NET

一种新的穿透防火墙的数据传输技术 - 追风逐云.NET - 博客园 [VC++]点对点(P2P)多线程断点续传的实现 Flash MX2004中的XML应用 Microsoft .Net Remoting系列专题之一:.Net Remoting基础篇 Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务 通过Web Services显示和下载文件 用 WebClient.UploadData 方法 上载文件数据 - 追风逐云.NET 创建以Microsoft .NET Remoting为基础的分布式应用架构 最近一直在做C#操作office方面的工作!总结一下!Word(二) 最近一直在做C#操作office方面的工作!总结一下!(一)Excel 读书笔记c#高级编程 委托和事件 设计了一个用户权限管理模型 C# 逐行驱动打印 C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题) .NET 2.0泛型集合类与.NET 1.1集合类的区别(二) .NET(C#)连接各类数据库-集锦 SQL Server .NET Framework 数据提供程序连接池 防止可淹没应用程序的池溢出 提高ASP.Net应用程序性能的十大方法
.NET 2.0泛型集合类与.NET 1.1集合类的区别(一)
追风逐云.NET · 2005-08-28 · via 博客园 - 追风逐云.NET

本文旨在阐述.NET 2.0泛型集合类与.NET 1.1集合类在使用中的区别,而不是介绍泛型的优势或者使用。这篇文章假设你已经会简单使用泛型来编程。
本文章使用.NET 2.0的2.0.50215.44版本,与正式版本可能有出入。

1、命名空间
1.1中关于集合的命名空间包括:

System.Collections 常见的动态数组ArrayList、字典基础类DictionaryBase和集合基础类Collection以及其他。
System.Collections.Specialized  常见的强类型的集合类,以字符串为键位检索的NameObjectCollectionBase,可存储字符串的NameValueCollection。

在.NET 2.0中,除掉以前的命名空间外,还增加了关于泛型的命名空间,包括:

System.Collections.Generic 核心的泛型集合实现,包括动态数组List、字典Dictionary;
System.Collections.ObjectModel  面向建立对外对象模型中常见的Collection、集合和字典的融合体KeyedCollection;

需要注意的是,在.NET 1.1中,mscorlib.dll实现的Queue、Stack,对应到.NET 2.0的泛型实现,移动到System.dll中了。另外,.NET 2.0的泛型实现并不是与原先一一对应的,他将以前几个重复功能的类合并成了一个泛型的实现,并新增了一些原先没有的新类,例如LinkedList。

2、System.Collections.Generic.List<T>
List<T>是原先ArrayList的泛型实现,是最基础的、性能最好和功能最强大的“动态数组”,他被建议使用于程序内部需要集合处理的地方,但并不被推荐直接暴露给外界程序,因为他的“入口”实在太多。如果需要暴露你的集合请参考使用Collection<T>。事实上,许多泛型的集合类内部就是使用List<T>,例如Collection<T>。

List<T>实现了排序功能,通过Sort方法可以实现各种负责的排序,因此,他也就不需要有1.1中SortedList的对应实现了。

List<T>除掉支持List原先的功能外,还提供了一些有意思的功能,例如:
List<T>.ForEach(System.Action<T>)方便了简单的循环使用,可以参见:http://notgartner.com/posts/1510.aspx
System.Collections.Generic.List<T>.ToArray()可以直接返回强类型的数组,这样就不必先建立一个数组,拷贝,再返回这么麻烦了。

List<T>实现了泛型的IList<T>,还实现了非泛型的IList接口,关于接口的不同,将在下篇文章中介绍