【问题标题】:c# Save Multidim ArrayList to Properties.Settingsc# 将 Multidim ArrayList 保存到 Properties.Settings
【发布时间】:2010-10-14 12:54:33
【问题描述】:

是否可以将多维 ArrayList 保存到 Properties.Settings 中?我在尝试时遇到错误。

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

【问题讨论】:

    标签: c# settings


    【解决方案1】:

    啊,我记得和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,有很多血淋淋的细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 2011-10-26
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多