c # Сохранить Multidim ArrayList в Properties.Settings - PullRequest
0 голосов
/ 14 октября 2010

Можно ли сохранить многомерный ArrayList в Properties.Settings?Я получаю ошибки, когда пытаюсь это сделать.

Если нет, есть ли другой способ сохранить какой-либо многомерный штучный файл в Properties.Settings?

1 Ответ

0 голосов
/ 02 ноября 2010

Ах, я помню, что сражение с Properties.Settings ... никогда не было веселым сражением :(. Быстрая и грязная опция - использовать разные символы-разделители для выполнения строки «сериализации» (в кавычках, потому что настоящая сериализация будетгораздо лучше об обработке краевых случаев и т. д.) Примерно так:

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

Вы также можете использовать эзотерические символы Юникода вместо ; и ,, чтобы избежать случайного разбиения строки иВы можете использовать цикл (или, возможно, рекурсию), чтобы обобщить это для любого числа измерений.

Но это, конечно, быстрый и грязный обходной путь. Реальным решением было бы сделать что-то вроде сериализация многомерного массива. Возможно, вам удастся избежать простого простого XmlSerializer или BinaryFormatter или даже JavaScriptSerializer кода - на самом деле, я думаю, что последний из них может работать очень хорошо --Но если вам нужно усложнить, этот вопрос обсуждает аналогичное решение для хеш-таблицы , с множеством кровавых подробностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...