【问题标题】:What's the best collection for Datetime objects with fast access to specific date可以快速访问特定日期的 Datetime 对象的最佳集合是什么
【发布时间】:2016-06-19 05:59:00
【问题描述】:

我必须将对象存储在包含 Datetime 对象作为 Key 的集合中。该系列确实包括一年中的所有日期。 我需要能够按日期快速访问随机对象,还需要能够访问特定日期之前/之后的下一天、前一天、一周/一个月。

我的第一个想法是使用字典并始终通过索引访问所需的对象。 这是最好的方法吗?

【问题讨论】:

  • 如果集合包括(仅)一年中的所有日期,则包含 365/366 个元素的数组就足够了。那么索引就是一年中的某一天。
  • 但是如果我想向前/向后跳一个月,它开始变得更加困难。 DateTime 提供月份和年份添加,并处理不同长度的月份和闰年。我认为将喜欢的列表与指向列表节点的目录结合起来可能是最好的方法。

标签: c# datetime


【解决方案1】:

你可以使用:

Hashtable ht = new Hashtable();

DateTime d1 = DateTime.Now;
ht.Add(d1, "Today");

但请记住,Dictionary 是泛型类型,而 Hashtable 不是。所以你需要决定什么最适合你。

【讨论】:

  • HashTable 相对于 Dictionary 的优势是什么?内部字典也适用于散列,不是吗?
  • 主要优点是搜索时的访问速度。
  • 所以Hashtable确实比Dictionary快,不知道。谢谢
  • 我做了一些研究,但哈希表并不总是最好的情况:你可以看到结果:blog.bodurov.com/…
  • 非常感谢您的研究。所以我认为对于我的项目字典与 List 的组合,其中每个条目还存储 ListIndex 是最好的组合。
猜你喜欢
  • 1970-01-01
  • 2014-08-22
  • 1970-01-01
  • 2020-11-26
  • 2011-05-06
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 2016-06-06
相关资源
最近更新 更多