3

我正在开发的一个 Office 加载项将包含几十个 120 长度的双精度数组(静态)。我可以用一堆静态成员数组创建一个类并使用数组初始值设定项,但这看起来有点难看。对我来说,我能够将这些存储在资源文件中是有道理的,但它实际上并没有任何适合的选项。最接近的选项是“文本文件”,但是每次我想使用它时我都必须解析每个数组,或者构建一个惰性加载器(这看起来很不优雅)。有更好的选择吗?

(出于好奇,这些数组是死亡率表。)

4

2 回答 2

1

我会亲自将它们设为静态类的静态成员,并将数据放入 ini 文件中。向类添加一个布尔值以指示数组是否已初始化(或者您可以逐个数组地执行此操作),并且在您访问该类的所有文件中进行检查以确保它已初始化,如果没有,请调用读取文件并将数据加载到数组中的方法。加载数据的方法真的不应该那么混乱,而且是一个相当琐碎的操作。

此方法还为您提供对数据的命名空间访问(如果您有正确的 using 语句/构建依赖项,则为全局)。

于 2013-04-29T20:02:38.380 回答
0

为什么不使用字符串资源。读取该字符串,用逗号分隔并解析每个数字。读取字符串后,所有的分离和解析都可以在一行 LINQ 中完成。

例子:

        string myResource = "1, 2, 3.4, 5.6";
        double[] values = myResource.Split(',').Select(Convert.ToDouble).ToArray();

否则,您可以将您的数组用双精度序列化一次到一个二进制文件并在您的代码中反序列化它。

如果解析是您主要关心的问题(因为速度),请将结果本地存储在私有缓存中。每次请求数组时,只需对其进行克隆。

于 2013-04-29T20:02:26.970 回答