尝试在WinForms应用程序的设置中存储string [] []

时间:2019-05-06 15:39:48

标签: c# arrays string winforms settings

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

<Setting Name="TagPresets" Type="System.String[][]" Scope="User">
  <Value Profile="(Default)" />
</Setting>

这很棒,但是每当我尝试以编程方式向其存储数组时,都会出现此错误:

Cannot implicitly convert type 'string[][*,*]' to 'System.Collections.Specialized.StringCollection'

这应该不会发生,因为我显然将设置声明为二维数组。这是我尝试设置的代码:

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

对于实现此目标的其他方法的任何帮助或想法,将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

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

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

事后考虑:当然,您可以将主数组中的每个子数组带入一个特定的字符中,然后将连接的字符串添加到StringCollection中。在下一次启动时,迭代StringCollection的值,将每个拆分成用于连接的字符,然后将结果数组添加到之前创建的主数组中。但老实说,我可以使用XML或JSON。