Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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# 正在尝试在WinForms应用程序的设置中存储字符串[]_C#_Arrays_String_Winforms_Settings - Fatal编程技术网

C# 正在尝试在WinForms应用程序的设置中存储字符串[]

C# 正在尝试在WinForms应用程序的设置中存储字符串[],c#,arrays,string,winforms,settings,C#,Arrays,String,Winforms,Settings,我有一个winforms应用程序,我试图将二维数组存储到我的Properties.settings中,以便以后从中提取。我发现我可以通过以下代码在设置中创建二维数组: <Setting Name="TagPresets" Type="System.String[][]" Scope="User"> <Value Profile="(Default)" /> </Setting> 这不应该发生,因为我显然声明设置为二维数组。下面是我试图设置它的代码: Se

我有一个winforms应用程序,我试图将二维数组存储到我的Properties.settings中,以便以后从中提取。我发现我可以通过以下代码在设置中创建二维数组:

<Setting Name="TagPresets" Type="System.String[][]" Scope="User">
  <Value Profile="(Default)" />
</Setting>
这不应该发生,因为我显然声明设置为二维数组。下面是我试图设置它的代码:

Settings.Default.TagPresets = new string[1][,] { new string[,] { { "", "" } } };

如果您能提供任何帮助或想到其他方法来实现这一点,我们将不胜感激。

这些设置无法处理数组、列表等。他们可以处理的唯一类似列表的数据类型是前面提到的StringCollection

也就是说,最好的方法可能根本不使用设置,而是使用一个单独的XML或JSON文件,程序在启动时读取,在退出前写入

当将StringCollection转换为数组、列表、队列或堆栈时,我认为这不适用于多维数组


事后想一想:当然,您可以获取主数组中的每个子数组,将其连接到某个字符上,然后将连接的字符串添加到StringCollection中。在下一次启动时,迭代StringCollection的值,在用于联接的字符上拆分每个值,并将生成的数组添加到之前创建的主数组中。但老实说,我会使用XML或JSON。

这些设置无法处理数组、列表等。他们可以处理的唯一类似列表的数据类型是前面提到的StringCollection

也就是说,最好的方法可能根本不使用设置,而是使用一个单独的XML或JSON文件,程序在启动时读取,在退出前写入

当将StringCollection转换为数组、列表、队列或堆栈时,我认为这不适用于多维数组


事后想一想:当然,您可以获取主数组中的每个子数组,将其连接到某个字符上,然后将连接的字符串添加到StringCollection中。在下一次启动时,迭代StringCollection的值,在用于联接的字符上拆分每个值,并将生成的数组添加到之前创建的主数组中。但我真的会使用XML或JSON。

谢谢。我不知道设置无法容纳数组。谢谢。我不知道设置无法保存数组。您到底想在设置文件中存储什么?设置是为在安装时确定的数据而设计的,如数据库或网络连接字符串,然后永不更改。如果您试图在设置中存储用户数据,您将遇到大量问题,例如当用户修复其安装或其他用户运行应用程序时,数据将消失。我正在尝试存储用户数据。正如TimB提到的,更好的方法是使用自定义文件,而这正是我要做的。您到底想在设置文件中存储什么?设置是为在安装时确定的数据而设计的,如数据库或网络连接字符串,然后永不更改。如果您试图在设置中存储用户数据,您将遇到大量问题,例如当用户修复其安装或其他用户运行应用程序时,数据将消失。我正在尝试存储用户数据。正如TimB提到的,更好的方法是使用自定义文件,这就是我要做的。
Settings.Default.TagPresets = new string[1][,] { new string[,] { { "", "" } } };