c#将Multidim ArrayList保存到Properties.Settings

时间:2010-10-14 12:54:33

标签: c# settings

是否可以将多维ArrayList保存到Properties.Settings?我尝试时会出错。

如果没有,还有其他方法可以将某些多维内容保存到Properties.Settings中吗?

1 个答案:

答案 0 :(得分:0)

啊,我记得和Properties.Settings战斗......从来没有一场有趣的战斗:(。快速和肮脏的选择是使用不同的分隔符来做一个字符串“序列化”(在引号中因为真正的序列化)处理边缘情况等会好得多。)。像这样:

int[][] myArray = GetArrayFromElsewhere();
string stringVersion = string.Join(";", myArray.Select(subArray => string.Join(",", subArray)));
Properties.Settings.StringVersion = stringVersion;

您也可以使用深奥的Unicode字符而不是;,,以避免意外拆分字符串,并且您可以使用循环(或可能是递归)将此概括为任意数字尺寸。

但是,这当然是一个快速而肮脏的解决方法。真正的解决方案是做一些多维数组的serialization。你可能只能使用一些简单的XmlSerializerBinaryFormatter或甚至JavaScriptSerializer代码 - 实际上,我认为其中最后一个代码可能效果很好---但如果你需要变得更复杂,this question discusses a similar solution for a hash table,有很多血腥的细节。