最佳字符串容器:StringCollection、Collection<string>、List<string>、ArrayList等?

32

在创建时长度未知,数组中存储字符串的情况下,最适合的容器是什么?

对于像这样简单的代码:

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

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


关于性能的相关问题:https://dev59.com/mWsz5IYBdhLWcg3wmpP0 - Knowledge Cube
2个回答

37

根据您的需求,List<string> 可能是最多才多艺的。在1.1版本中,由于没有泛型,需要为类型化集合使用特定的类,因此 StringCollection 非常方便。如果想要对其进行子类化以提供验证等,则 Collection<string> 非常方便。

无论哪种方式,从3.5开始,LINQ将为它们提供大量附加方法。但是,如果没有使用LINQ,List<T> 具有更多功能(例如Find, Sort等)


15

List<T>是最有效的选择。

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

ArrayList本质上与List<object>相同,因此当从它读取时,您需要将项转换为String

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接