31

什么是最合适的容器,仅用于保存在具有未确定上边界的某个数组中的字符串,该数组的长度在其创建时是未知的。

对于简单的代码,例如:

var list = new SomeContainer(); // size is unknown
for()/foreach()/do()/while() // any loop
{
  list.Add(string);
}

它是StringCollection作为字符串的优化集合,还是只是Collection<string>or List<string>or ArrayList?他们之间有什么不同?

4

2 回答 2

36

对于您所需要的,List<string>可能是最通用的。StringCollection在 1.1 中很方便,当(没有泛型)您需要特定的类用于类型化集合时。Collection<string>如果您想对其进行子类化以提供验证等,这很方便。

无论哪种方式,在 3.5 中,LINQ 都会为它们提供许多额外的方法——但没有 LINQ,List<T>会有更多的特性(Find、、Sort等)

于 2009-03-21T10:51:13.430 回答
15

AList<T>将是最有效的。

该类Collection<T>只是另一种类型列表的包装器,无参数构造函数Collection<T>使用List<T>.

AnArrayList本质上与 a 相同,因此在从中读取时List<object>必须将项目转换为。String

AStringCollection只是一个类型安全的包装器ArrayList

于 2009-03-21T10:56:47.940 回答