是否可以将多维ArrayList保存到Properties.Settings?我尝试时会出错。
如果没有,还有其他方法可以将某些多维内容保存到Properties.Settings中吗?
答案 0 :(得分:0)
啊,我记得和Properties.Settings
战斗......从来没有一场有趣的战斗:(。快速和肮脏的选择是使用不同的分隔符来做一个字符串“序列化”(在引号中因为真正的序列化)处理边缘情况等会好得多。)。像这样:
int[][] myArray = GetArrayFromElsewhere();
string stringVersion = string.Join(";", myArray.Select(subArray => string.Join(",", subArray)));
Properties.Settings.StringVersion = stringVersion;
您也可以使用深奥的Unicode字符而不是;
和,
,以避免意外拆分字符串,并且您可以使用循环(或可能是递归)将此概括为任意数字尺寸。
但是,这当然是一个快速而肮脏的解决方法。真正的解决方案是做一些多维数组的serialization。你可能只能使用一些简单的XmlSerializer
或BinaryFormatter
或甚至JavaScriptSerializer
代码 - 实际上,我认为其中最后一个代码可能效果很好---但如果你需要变得更复杂,this question discusses a similar solution for a hash table,有很多血腥的细节。