关于c#:Dictionary,List或Array?

Dictionary, List or Array?

我正在写一个性能至关重要的服务,我不确定什么是最快的。我有一些对象(50-200),每个对象中都有一个ID(ints,例如84397或23845)。拥有一个字典,一个键值对列表,或者一个索引设置为id的列表,其余的值为空,或者一个具有相同想法的数组会更快吗?


这取决于要执行的操作。假设您想要找到一个具有给定ID的对象。

  • 大型阵列方法是最快的:访问myArray[84397]是一个固定时间的操作o(1)。当然,这种方法需要的内存最多。
  • 由于字典在内部使用哈希表,因此它的速度几乎相同,但需要的内存更少。
  • pairs方法是最慢的,因为您可能需要遍历整个列表才能找到条目,这会产生O(n)复杂性。

因此,在您的情况下,我会选择字典,除非在您的案例中,大型数组的性能稍微好一些。


Dictionary在内部使用哈希表,所以我认为它是最快的一个。


字典与列表查找时间

此外,要更详细地解释不同的收藏,请查看此问题。


您也可以使用哈希表。字典内部使用它。但字典的一个优点是它是一个通用类型,它给了您类型安全性。

这是不同的线字典与哈希表我希望它能帮助你做出决定。

普拉文