这是我选择使用哪种 C# 集合类型的策略:
如果集合中的项数是固定的,则使用数组,例如:
string[] directions = new string[] { "north", "south", "east", "west"};
否则总是使用
List<T>
当然,除非您需要更专业的收藏,例如
Stack<T>, Queue<T>, or Dictionary<TKey, TValue>
但再也不用ArrayList了
根据您的经验,此策略缺少什么?
最佳答案
您的规则工作正常。
另外:
- 始终优先选择通用(或专用)集合而不是非通用(基于
object
的)集合。 - 使用
HashSet<T>
如果您只想检查是否存在而不是键值映射(通过Dictionary
表示)。 - 对于字典,如果顺序看起来很重要,请考虑使用有序映射(
SortedList<...>
、SortedDictionary<...>
)。 - 如果中间有删除/插入操作,请使用链表。
当然还有最重要的一个:
- 从不导出具体的集合类型:始终使用最通用的接口(interface),即 - 在大多数情况下 -
IList<T>
或IEnumerable<T>
.
关于c# - 这种选择使用哪个 C# 集合的策略缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3435904/