Best string container: StringCollection, Collection<string>, List<string>, ArrayList, ..?

那年仲夏 提交于 2019-11-27 01:15:49

问题


What is the most suitable container just for strings holding in some array with non-predetermined upper boundary, which length is unknown on it's creation.

For simple code like:

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

Is it StringCollection as optimized Collection for string, or just Collection<string> or List<string> or ArrayList ? What is the different between them?


回答1:


For what you need, List<string> is probably the most versatile. StringCollection was handy in 1.1, when (without generics) you needed specific classes for typed collections. Collection<string> is handy if you want to subclass it to provide validation etc.

Either way, in 3.5, LINQ will provide lots of additional methods for them - but without LINQ, List<T> has more features (Find, Sort, etc)




回答2:


A List<T> would be the most efficient.

The Collection<T> class is just a wrapper for another type of list, the parameterless constructor initialises the Collection<T> with a List<T>.

An ArrayList is essentially the same as a List<object>, so you would have to cast the items to String when reading from it.

A StringCollection is just a type safe wrapper for an ArrayList.



来源:https://stackoverflow.com/questions/669106/best-string-container-stringcollection-collectionstring-liststring-array

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!