在C#中使用string [] vs list <string>的位置

Bik*_*iki 32 .net c# c#-4.0

String[]与...相比重量轻list<string>.因此,如果我不需要操纵我的收藏品,我应该使用string[]还是总是可行的list<string>

如果是list<string>,我们是否需要执行空检查或不需要?

Dar*_*rov 44

使用string[]时需要用静态数组的工作:你并不需要添加和删除元素-通过指数>只能访问元素.如果需要修改集合使用List<string>.如果您打算只遍历内容并且永远不会通过索引使用来访问IEnumerable<string>.


Pet*_*old 8

如果不应该修改集合,请使用string []甚至更好IEnumerable<string>.这表明字符串集合应被视为字符串的只读集合.

IEnumerable<string>在API中使用也可以在不破坏客户端代码的情况下更改底层实现.您可以轻松地使用字符串数组作为底层实现,并将其公开为IEnumerable<string>.如果稍后阶段的实现更适合使用列表或其他结构,只要它支持,您就可以更改它IEnumerable<string>.


Mat*_*att 4

我想说你自己总结得很好。

如果列表的大小不会改变,并且不需要任何高级列表功能(例如排序),那么 String[] 是更好的选择,因为正如您所说,它是轻量级的。

但考虑一下未来潜在的需求 - 是否有可能有一天您想要使用 List 来做某事?如果是这样,请考虑立即使用 List。

您需要检查 String[] 和 List 中是否为 null。两种类型都可以有空值。

  • 做最简单的事。考虑“有一天*可能*可能会是什么要求”是危险的,让我想起了大设计前期:) (7认同)
  • @Peter 虽然我确实同意,但我认为这是企业应用程序的思维方式。开发人员,而我来自组件编写背景,您必须考虑用户“可能”想要使用您的组件执行的所有操作。正如其他人所建议的,这在很大程度上取决于上下文。 (2认同)