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

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
U
Unit 42
H
Help Net Security
博客园_首页
雷峰网
雷峰网
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
Recorded Future
Recorded Future
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
S
Security @ Cisco Blogs
M
MIT News - Artificial intelligence
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
K
Kaspersky official blog
MyScale Blog
MyScale Blog
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
V
Vulnerabilities – Threatpost
WordPress大学
WordPress大学
C
Cisco Blogs
G
Google Developers Blog
N
News and Events Feed by Topic
P
Palo Alto Networks Blog
Apple Machine Learning Research
Apple Machine Learning Research
Schneier on Security
Schneier on Security
博客园 - 聂微东
Security Latest
Security Latest
Security Archives - TechRepublic
Security Archives - TechRepublic
O
OpenAI News
云风的 BLOG
云风的 BLOG
IT之家
IT之家
PCI Perspectives
PCI Perspectives
Microsoft Security Blog
Microsoft Security Blog
NISL@THU
NISL@THU
小众软件
小众软件
Scott Helme
Scott Helme
大猫的无限游戏
大猫的无限游戏
L
LINUX DO - 最新话题
Microsoft Azure Blog
Microsoft Azure Blog
Simon Willison's Weblog
Simon Willison's Weblog
N
News and Events Feed by Topic
F
Fortinet All Blogs
The Last Watchdog
The Last Watchdog

博客园 - 杰仔

js收集 - 杰仔 - 博客园 VS 2005 Debugger crashing with IE 8 SQL 收集2 ref与out区别(ref有进有出,而out只出不进) firefox.chrome等兼容性 - 杰仔 - 博客园 js获取控件位置 SQL函数收集 Convert和Cast比较 AutoComplete控件(转) 中文转拼音类 Castle在“新.NET时代”将何去何从 (转DotNet频道) Char 和 Varchar 与 nchar 和 nvarchar 最终总结比较 Asp.net的ViewState - 杰仔 - 博客园 Silverlight用户控件切换(源码) js元素 - 杰仔 - 博客园 innerHTML与innerText使用 - 杰仔 - 博客园 Silverlight 2应用程序中切换用户控件(转) LINQ体验系列文章导航(转) int +问号使用
.net 贬型 list
杰仔 · 2009-03-12 · via 博客园 - 杰仔

我以前经常使用Lotus Domino平台及其LotusScript语言。这门语言中我最喜欢的一个特性是List对象;它会简化使用相同对象的集合。后来我发现.NET框架2.0语言里也有一个类似(甚至更加强大)的特性。

范型

.NET框架2.0引入了一个叫做范型(generics)的重要概念。虽然范型常常都是用C#语言来讨论的,但是它事实上是.NET中间语言(Intermediate Language,IL)里的一个重要特性,所以它在所有的.NET语言里都有。.NET是类别安全语言,所以编译器会检查变量分配是否合法,如果有问题它就会提示你。

类型安全特性在使用集合对象的.NET 1.1里消失了,因为集合可以容纳一切东西。在访问单独的集合元素时,你必须把它们归为正确的类型——这就是范型的作用。使用范型的集合会保留集合的一般性质,但是在被实例化的时候,通过为集合定义对象类型,类型安全被加入。

System.Collections.Generic命名空间含有用来定义范型集合的接口和类,它可以让你创建强类型集合。反过来,它们提供了比非范型强类型集合更好的类型和性能。我们将把注意力放到这样一个集合上——List。

List类

你可以使用System.Collections.Generic.List类来表示一个可以通过索引来访问的强类型对象的列表。这个类为搜索、排序和操控列表的内容提供了方法。微软的文档将List类描述为与ArrayList类对应的范型。它包括下列方法:

  • Add允许向List的结尾添加对象。
  • AddRange将一个集合的内容添加到List的结尾。
  • BinarySearch使用二进制搜索算法在被排序的List里或者其中的一部分里寻找某个元素。
  • Clear清除List里的内容(也就是说,删除所有的东西)。
  • Contains确定List里是否含有某个元素。
  • ConvertAll把所有的List元素转换成为另外一种类型。
  • CopyTo把List里的所有内容复制到另外一个数组里。
  • Exists确定List里是否含有符合条件的元素。
  • Find搜索符合特定的条件的元素。
  • FindAll搜索符合某些条件的所有元素。
  • FindIndex搜索符合条件的元素索引。
  • FindLast搜索符合特定条件的元素最后一次出现的地方。
  • FindLastIndex搜索符合特定条件的元素最后一次出现的地方,并返回其索引。
  • ForEach对每个List项目采取某个动作。
  • GetEnumerator返回一个在List里迭代的计数器。
  • GetRange返回List里元素的子集。
  • IndexOf返回符合某个值的元素的第一个索引。
  • LastIndexOf返回符合某个值的元素的最后一个索引。
  • Remove从List里删掉某个元素第一次的出现。
  • RemoveAll从List里删除符合条件的所有元素。
  • RemoveAt用某个索引从List里删除元素。
  • RemoveRange从List里删除元素组。
  • Reverse颠倒List元素的顺序。
  • Sort利用键值给List元素排序。

这个列表虽然没有列出所有的方法,但是它概要说明了List类提供的各种功能。此外,还有其他一些可用的属性,包括计算(List中项目的数量)和容量(也就是在不需要调整大小的情况下List能够容纳的项目数量)。