【发布时间】:2017-08-22 21:21:58
【问题描述】:
这是这个问题的延续: Best way to represent sets of 3 values
我想将物质的温度存储为时间和位置的函数。所以温度随位置和时间而变化。关于位置,我将整个材料表面划分为 i*j 个小区域,因此我可以分别为每个区域分配温度。例如,应该能够在 time=3 秒时读取 zone[3,5] 的温度。 我的目标是拥有一个由时间、i 和 j 组成的集合。所以我可以在区域 [i=4, j=7] 的时间 = 3.5 秒时访问温度。 3D 数组没有帮助,因为我需要能够使用时间作为键,如下所示:
temperature[3.5][4,7]
这里3.5是时间,4是i,7是j。 我该怎么做?我应该如何访问温度数据?
【问题讨论】:
-
为什么不也使用结构体?
-
温度等级内的二维数组?或者,“Dictionary
>>”,但是,如果有可能,Dictionary 的 api 将不允许“temperature[3.5][4][7]”密钥不存在 -
你绝对可以通过定义一些结构和重载索引器操作符来实现这一点。
-
您无法通过简单的数据收集来实现这一目标。这背后的原因是所有这些集合都存储离散的数据集,而您试图将温度存储为时间的连续函数。您必须要么实现一些具有类似集合接口的自定义存储类,要么重新考虑使用该功能的方式。该功能真的是连续温度监测的结果,还是您将其作为一些离散测量值的近似值?
标签: c# dictionary generics multidimensional-array