这种选择使用哪个 C# 集合的策略缺少什么?
以下是我选择使用哪种 C# 集合类型的策略:
如果集合中的项目数量是固定的,则使用数组,例如:
string[] Directions = new string[] { "north", "south", "east", "west" };
否则始终使用
List
当然,除非您需要更专门的集合,例如< code>Stack
、Queue 或 Dictionary 但不再使用 ArrayList
根据您的经验,此策略缺少什么?
Here's my strategy for choosing which C# collection type to use:
if number of items in collection is fixed, then use an array, e.g.:
string[] directions = new string[] { "north", "south", "east", "west" };
otherwise always use
List<T>
unless of course you need a more specialized collection, e.g.
Stack<T>, Queue<T>, or Dictionary<TKey, TValue>
but never use ArrayList anymore
Based on your experience, what is missing from this strategy?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的规则运作良好。
另外:
对象
)的集合。Dictionary
表示),请使用HashSet
。SortedList<...>
、SortedDictionary<...>
)。当然,最重要的一点是:
IList
或IEnumerable
代码>.Your rules work fine.
In addition:
object
-based) ones.HashSet<T>
if you want to check for mere existence instead of key-value-mappings (which is represented throughDictionary
).SortedList<...>
,SortedDictionary<...>
) if ordering seems important.and of course the most important one:
IList<T>
orIEnumerable<T>
.我想说,在大多数情况下,即使我知道集合中的项目数量,我也会使用 List,仅仅是因为它提供的实用函数数量以及与 LINQ 的兼容性。
当您希望更快地访问集合中的项目时,哈希图是一个重要的用例。
I'd say that in the majority of cases, even if I knew the number of items in a collection, I'd use List, simply for the number of utility functions it provides and compatibility with LINQ.
Hashmaps are an important use case, for when you would want faster access to items within the collection.
如果您打算重写继承类中的添加/删除/清除方法,因为存在虚拟方法,您也可以使用
Collection
。You can also use
Collection<T>
if you plan to override add/remove/clear methods in an inherited class because there are virtual methods.