Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#大量静态数字阵列_C#_Visual Studio_Office Addins - Fatal编程技术网

C#大量静态数字阵列

C#大量静态数字阵列,c#,visual-studio,office-addins,C#,Visual Studio,Office Addins,我正在开发的Office插件将包含几十个120长度的双数组(静态)。我可以用一堆静态成员数组创建一个类,并使用数组初始值设定项,但这看起来有点难看。对我来说,可以将它们存储在资源文件中是有道理的,但它实际上没有任何适合的选项。最接近的选项是“文本文件”,但我要么每次想使用它时都要解析每个数组,要么构建一个懒散的加载程序(这看起来也很不雅观)。有更好的选择吗 (出于好奇,这些数组是死亡率表。)为什么不使用字符串资源呢。读那个字符串,用逗号分隔,然后解析每个数字。读取字符串后,所有分离和解析都可以在

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


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

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

例如:

        string myResource = "1, 2, 3.4, 5.6";
        double[] values = myResource.Split(',').Select(Convert.ToDouble).ToArray();
否则,您可以使用double将数组序列化一次为二进制文件,并在代码中对其进行反序列化


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

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


此方法还允许您对数据进行命名空间访问(如果您有适当的using语句/构建依赖项,则为全局)。

您应该定义“更好的选项”。您提到的每种方法都有其优点和缺点。您想优化什么:易维护性、性能…?为什么不将数据存储在外部文件中,以便在不重新编译的情况下对其进行调整?@DanJ我想同时优化性能、易维护性和“正确操作”(也就是说,如果Visual Studio有一项功能可以实现我想要的功能,请使用该功能,而不是自己滚动).在这个问题中,我定义了我认为优化问题的有效边界,并想知道是否有超出该边界的内容。我感觉Alex希望所有数据和代码都在一个DLL中,因此当插件安装不正确时,无法访问其他可能出错的文件。