答:集合类型是VB6程序员最好的朋友:它的确是把多组对象集中入一个组的唯一方法,并能提供无争辩的枚举。它使得从组内检索任意对象变得很容易。我还可以先告诉你,在.NET里没有和VB6集合相对应的部分。你现在所能拥有的其实是很多类似于VB6集合的一揽子替换方案。事实上,在你寻找.NET的集合时,你要问自己的第一个问题是,“我真的需要一个吗”?
要记住,所有的.NET语言都能够创建对象类型的数组。一般而言,数组在访问速度和内存利用率上要比任何集合的效率都高,而且在许多情况使用数组就足够了。实际上,很多.NET框架的一般集合类是由Object数组支持的。
假如你有一个类:Person,在VB.NET里,你会使用以下代码创建一个包含10项内容的Person数组:
Dim Persons(10) As Person
在C#里,会是这样:
Person[] persons = new Person[10];
如我所述,绝大多数情况下,数组优于集合,唯一的例外是只有当:
如果你已经决定了肯定要使用集合,那么你就要决定哪种集合最合适:集合、形式表或者字典。简而言之,这些集合类型可以被细分为如下几种:
另一个最好的东西
.NET里和VB6 Collection最接近的是字典。唯一的不同是,它不像VB版本里的那样容易通过数值索引。要获得相同的功能,你需要创建一个能执行IList和IDictionary的类。