【发布时间】:2015-07-29 16:46:06
【问题描述】:
我正在尝试优化我的代码以加快计算速度并减少内存消耗。我需要存储年份和成本的数据。目前我使用固定数组来保存值。
例如,我会有一个整数数组:
integer[0] = 0,
integer[1] = 200,
integer[2] = 0,
integer[3] = 0,
integer[4] = 200,
integer[5] = 0,
...
integer[99] = 0
integer[0] = 0 表示 2015 年的成本为 0 美元,integer[1] = 200 表示 2016 年的成本为 200 美元,依此类推。由于我在内存中保存了数百万个这样的数组并用于计算,因此我希望最大限度地减少对内存和性能的影响。
为了澄清,我使用数据的方式是为了图表目的。一旦我将成本分配给年份,我就会根据它们所属的对象系列对数组进行汇总。然后我将它们显示在堆积条形图中。
有没有更好的方法来存储我的数据?我正在考虑键值列表,所以我只存储非零成本和年份,但我不知道这是否会有很大帮助。
【问题讨论】:
-
最佳答案在很大程度上取决于您如何使用这些数据。你能详细说明一下吗?
-
@Diosjenin 我添加了一些信息。希望有帮助吗?
-
确实如此。我在 Jacob 的回答中看到的唯一问题是 Dictionary 不会在内部保持元素按年份排序,因此您必须 a) 遍历字典并自己对它们进行排序(使用 LINQ 或自定义函数),或者 b ) 迭代已知年份并查看字典是否包含每年作为键。如果其中任何一个都是可接受的性能权衡,那么字典将适合您。如果没有,请告诉我们。
标签: c# arrays list data-structures key-value