最合适的容器是什么,只适用于保留在具有非预定上边界的某个数组中的字符串,该长度在创建时未知。
对于简单的代码,例如:
var list = new SomeContainer(); // size is unknown
for()/foreach()/do()/while() // any loop
{
list.Add(string);
}
StringCollection
是字符串的优化收藏,还是仅Collection<string>
或List<string>
或ArrayList
?他们之间有什么不同?
答案 0 :(得分:35)
根据您的需要,List<string>
可能是最通用的。 StringCollection
在1.1中很方便,当(没有泛型)你需要特定类的类型集合时。如果你想将它子类化以提供验证等,那么Collection<string>
会很方便。
无论哪种方式,在3.5中,LINQ将为它们提供许多其他方法 - 但如果没有LINQ,List<T>
会有更多功能(Find
,Sort
等)
答案 1 :(得分:15)
List<T>
效率最高。
Collection<T>
类只是另一种类型列表的包装器,无参数构造函数使用Collection<T>
初始化List<T>
。
ArrayList
基本上与List<object>
相同,因此您必须在阅读时将这些项目投放到String
。
StringCollection
只是ArrayList
的类型安全包装。