String[]
比list<string>
轻量级。因此,如果我没有任何需要操作集合的需求,我应该使用string[]
还是总是建议选择list<string>
?
在使用list<string>
时,我们需要执行null检查吗?
使用string[]
处理静态数组:您不需要添加或删除元素->只通过索引访问元素。 如果您需要修改集合,请使用List<string>
。如果您仅打算循环遍历内容并且从不按索引访问,则使用IEnumerable<string>
。
我认为你已经很好地总结了。
如果你的列表大小不会改变,而且你不需要任何高级的列表功能,比如排序,那么String[]更可取,因为正如你所说,它是轻量级的。
但要考虑潜在的未来需求——是否有可能你将来会想要使用List做些什么?如果是这样,请考虑现在就使用List。
你需要检查null值,无论是在String[]中还是在List中。这两种类型都可以有null值。
List
到处都是,只因为使用起来方便。这样做会导致对实现的锁定结果。如果一个组件,无论是企业级的还是非企业级的,提供一个数据列表,那么合同和该组件的目的应该决定返回什么数据类型。如果客户端需要修改集合,只需要新建一个 List
就可以了。 - Peter LillevoldmyList.Add (myWidg);
相对于
,这种写法更易读、易维护。
myArr [i] = myWidg;
这真的取决于情况。任何与性能相关的事情都应该使用数组完成。其他任何事情都可以使用列表。