C#大量静态数值数组

时间:2013-04-29 19:56:35

标签: c# visual-studio office-addins

Office加载项我正在开发中将有几十个120长度的双数组(静态)。我可以用一堆静态成员数组创建一个类并使用数组初始化器,但这看起来有点难看。我有意义的是,我能够将它们存储在资源文件中,但它并没有真正适合的选项。最接近的选项是"文本文件"但是每次我想要使用它或构建一个lazyloader(这看起来同样不优雅)时,我要么必须解析每个数组。有更好的选择吗?

(好奇的是,数组是死亡率表。)

2 个答案:

答案 0 :(得分:1)

我个人会将它们作为静态类的静态成员,并将数据放入ini文件中。在类中添加一个bool来指示数组是否已经初始化(或者你可以在数组的基础上对数组执行此操作),并且在访问该类的所有文件中都要进行检查以确保它已初始化,如果没有,则调用读取文件并将数据加载到数组中的方法。加载数据的方法确实不应该是那么混乱,而且这是一个相当简单的操作。

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

答案 1 :(得分:0)

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

示例:

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

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

如果解析是您的主要考虑因素(由于速度原因),请将结果存储在本地缓存中。每次请求数组时,只需复制它。