У меня есть то, что сначала казалось тривиальной проблемой, но оказалось тем, что я не могу понять, как ее легко решить.Мне нужно иметь возможность хранить списки элементов в строке.Тогда эти элементы в свою очередь могут быть списком, или каким-либо другим значением, которое может содержать мой символ-разделитель .У меня есть два разных метода, которые распаковывают два разных случая, но я понял, что мне нужно кодировать содержащееся в нем значение из любых символов-разделителей, используемых с string.Split.
Чтобы проиллюстрировать проблему:
string[] nested = { "mary;john;carl", "dog;cat;fish", "plainValue" }
string list = string.Join(";", nested);
string[] unnested = list.Split(';'); // EEK! returns 7 items, expected 3!
Это приведет к появлению списка "mary; john; carl; dog; cat; fish; plainValue", значение, которое я не могу разделить, чтобы получить три исходные вложенные строки.Действительно, вместо трех исходных строк я бы получил 7 строк при разбиении, и поэтому этот подход вообще не работает.
Я хочу разрешить кодирование значений в моей строке, чтобы я могмогу распаковать / разделить содержимое так, как я их упаковал / присоединился. Полагаю, мне может понадобиться убежать от строки. Сплит и строка. Присоединяйтесь, и это совершенно нормально.Я мог бы просто пропустить какой-нибудь полезный класс или метод.
- Как разрешить упаковывать / распаковывать любые строковые значения в списки?
Я предпочитаю аккуратные, простые решенияслишком громоздким, если это возможно.
Для любопытных умений я делаю расширения для PlayerPrefs в Unity3D, и я могу работать только с целыми числами, числами с плавающей запятой и строками.Таким образом, я выбрал строки, чтобы быть моим носителем данных.Вот почему я делаю этот вложенный список строк.