最佳字符串容器:StringCollection,Collection <string>,List <string>,ArrayList,..?</string> </string>

时间:2009-03-21 10:41:26

标签: .net list collections containers ilist

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

对于简单的代码,例如:

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

StringCollection是字符串的优化收藏,还是仅Collection<string>List<string>ArrayList?他们之间有什么不同?

2 个答案:

答案 0 :(得分:35)

根据您的需要,List<string>可能是最通用的。 StringCollection在1.1中很方便,当(没有泛型)你需要特定类的类型集合时。如果你想将它子类化以提供验证等,那么Collection<string>会很方便。

无论哪种方式,在3.5中,LINQ将为它们提供许多其他方法 - 但如果没有LINQ,List<T>会有更多功能(FindSort等)

答案 1 :(得分:15)

List<T>效率最高。

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

ArrayList基本上与List<object>相同,因此您必须在阅读时将这些项目投放到String

StringCollection只是ArrayList的类型安全包装。