Ах, я помню, что сражение с Properties.Settings
... никогда не было веселым сражением :(. Быстрая и грязная опция - использовать разные символы-разделители для выполнения строки «сериализации» (в кавычках, потому что настоящая сериализация будетгораздо лучше об обработке краевых случаев и т. д.) Примерно так:
int[][] myArray = GetArrayFromElsewhere();
string stringVersion = string.Join(";", myArray.Select(subArray => string.Join(",", subArray)));
Properties.Settings.StringVersion = stringVersion;
Вы также можете использовать эзотерические символы Юникода вместо ;
и ,
, чтобы избежать случайного разбиения строки иВы можете использовать цикл (или, возможно, рекурсию), чтобы обобщить это для любого числа измерений.
Но это, конечно, быстрый и грязный обходной путь. Реальным решением было бы сделать что-то вроде сериализация многомерного массива. Возможно, вам удастся избежать простого простого XmlSerializer
или BinaryFormatter
или даже JavaScriptSerializer
кода - на самом деле, я думаю, что последний из них может работать очень хорошо --Но если вам нужно усложнить, этот вопрос обсуждает аналогичное решение для хеш-таблицы , с множеством кровавых подробностей.