在 C# 中管理时间序列

use*_*316 2 c# collections datetime time-series

我想听听您对 C# 中管理时间序列的最佳方法的看法。我需要有一个类似于二维矩阵的 Datetime 对象作为行索引(有序且不重复),并且每列将代表相关 Datetime 的股票值。我想知道这些对象中的任何一个是否能够处理日期的缺失数据:添加列或时间序列会在行索引中添加缺失的日期,并会添加“null”或“N/a”现有日期缺失值。

与 C++ 相比,C# 中已经提供了很多东西,我不想错过一些明显的东西。

Mat*_*dge 5

您可以使用日期和股票价值之间的映射,例如Dictionary<DateTime, decimal>。这样日期就可以稀疏了。

如果您需要每个日期多只股票的价格,并且并非每个日期都会显示所有股票,那么您可以在 和 之间进行选择Dictionary<DateTime, Dictionary<Stock, decimal>>Dictionary<Stock, Dictionary<DateTime, decimal>>具体取决于您之后想要如何访问这些值(或者甚至两者都选择,如果您不介意存储值两次)。

  • 注意:字典不保证顺序保留。如果您只加载一次数据,应该没问题(使用当前的实现),但否则顺序可能会改变!最好使用 OrderedDictionary 代替。 (2认同)