在.NET中,我们有很多不同的集合类型。我通常很擅长根据自己的需要选择合适的产品,但我注意到我并不总是考虑其中的所有方面(例如可用性,可维护性,性能)
所以我们什么时候使用:
为什么?
我希望通过良好的解释进行一些很好的比较(也许还有一些代码,以支持它)。我认为这里有一个胜利(希望我们更多)。
答案 0 :(得分:4)
每个系列在某些领域表现出色,在其他领域表现不佳。因此,您使用的集合很大程度上取决于程序中的预期用途。
以下是每个集合通常用于的细分。
<强>阵列强>
var array [] = new T [n] {/ * n elements * /};
<强>列表强>
var list = new List&lt; T&gt;();
list.Add(默认(T));
<强>词典强>
var dictionary = new Dictionary&lt; TKey,TValue&gt;();
<强>哈希表强>
喜欢Dictionary<TKey, TValue>
; HashTable
是非通用的Dictionary
<强> HashSet的强>
var set = new HashSet&lt; T&gt;();
set.Add(默认(T));
<强>链表强>
var linkedList = new LinkedList&lt; T&gt;();
linkedList.AddAfter(linkedList.First,default(T));
以上是我所知道的,请不要接受它作为事实并根据上述情况进行自己的研究。如果有任何我错过的内容应该包括在内,请在评论中告诉我。