C#字典表现

der*_*rek 5 c# asp.net dictionary

我正在使用Dictionary来存储数据,并将缓存它.我想通过限制Dictionary <>的大小来避免服务器内存问题,并且具有良好的性能,无论是大小还是条目数.
这样做的最佳方法是什么?除了词典之外,我还应该考虑另一个课吗?

Fox*_*ire 5

您无需限制Dictionary的大小即可获得良好的性能.

正如文件所说:

使用其键检索值非常快,接近O(1)

  • 如果你允许字典无限增长,你可以使用所有可寻址的内存.依赖于硬件,您可能会或可能不会因为在此之前交换很长时间而遇到性能问题. (2认同)

Asa*_*sad 2

您还可以选择其他几个课程,例如

您可以通过查看System.Collections.Generic命名空间来查看这些选项。

这是一篇非常好的帖子,描述了 MSDN 上所有大多数集合类的优缺点

如果您对这些课程提供的内容不满意,您可以选择自己的收藏课程或自行设计custom Dictionary

您将需要从 IDictionary Interface 和其他类/接口继承自定义字典,或者可能从头开始编写所有内容。

这是MSDN 上Dictionary 类的签名

[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>, 
    ICollection<KeyValuePair<TKey, TValue>>,
    IEnumerable<KeyValuePair<TKey, TValue>>, 
    IDictionary, ICollection, IEnumerable,
    ISerializable, IDeserializationCallback
Run Code Online (Sandbox Code Playgroud)