【发布时间】:2010-10-14 12:54:33
【问题描述】:
是否可以将多维 ArrayList 保存到 Properties.Settings 中?我在尝试时遇到错误。
如果没有,还有其他方法可以将某种多维事物保存到 Properties.Settings 中吗?
【问题讨论】:
是否可以将多维 ArrayList 保存到 Properties.Settings 中?我在尝试时遇到错误。
如果没有,还有其他方法可以将某种多维事物保存到 Properties.Settings 中吗?
【问题讨论】:
啊,我记得和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,有很多血淋淋的细节。
【讨论】: