Записать переменую в список C#: не работает разделитель

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18
Здравствуйте. Что-то бьюсь с элементарной задачей.
Есть переменная с такими значениями:
"telefon
mail
ofsayt"

Хочу записать ее на c# в список, но чтобы каждая строчка добавилась в новую строку списка, т.е.
telefon в первую строку
mail во вторую
ofsayt в третью.

Между строками в переменной разделитель \n, проверяла через notepad++.
Пытаюсь записать конструкциями:
Код:
var list = project.Lists["Список"];
string text = project.Variables["kontakty"].Value;
list.Add(text);
но прочитала на форуме, что list.Add записывает в одну строку, так что не подходит.

Еще нашла решение на форуме вроде:
Код:
var list = project.Lists["Список"];
string text = project.Variables["kontakty"].Value;
return string.Join("\n", project.Lists["Список"]);
Крутила разделитель и так и сяк. В списке "Список" ставила и стандартный разделитель Enter, и "Свой Regex" \n и много вариантов. Результат один - записывает все скопом в одну строку.

Заранее спасибо за помощь.
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Код:
string text = project.Variables["Test"].Value;
string regex = "(?<=\r\n).*|.*(?=\r\n)";
var reg = new System.Text.RegularExpressions.Regex(regex,  System.Text.RegularExpressions.RegexOptions.None);
for (int i = 0; i < reg.Matches(text).Count; i++){
    project.Lists["Test"].Add(reg.Matches(text)[i].ToString());
}
Вот так как-то. Поиграйтесь с регуляркой.
Придумал через регулярку, надеюсь кто-то лучше что-то придумает.
 
  • Спасибо
Реакции: alya_6

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113
попробуй разделитель (\r?\n|\r\n?)
 

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18
Код:
string text = project.Variables["Test"].Value;
string regex = "(?<=\r\n).*|.*(?=\r\n)";
var reg = new System.Text.RegularExpressions.Regex(regex,  System.Text.RegularExpressions.RegexOptions.None);
for (int i = 0; i < reg.Matches(text).Count; i++){
    project.Lists["Test"].Add(reg.Matches(text)[i].ToString());
}
Вот так как-то. Поиграйтесь с регуляркой.
Придумал через регулярку, надеюсь кто-то лучше что-то придумает.
Здравствуйте. Спасибо! А по выполнению кода, получается, должен результат записываться в список Test, верно? Он у меня пустой. Что ставить в настройках списка, какой разделитель?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 375
Благодарностей
2 041
Баллы
113
C#:
var text = project.Variables["kontakty"].Value;
FileSystem.FileAppendString(project.Directory + "\\Result.txt", string.Join("\r\n", text), true);
2019-05-05_210216.png
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Здравствуйте. Спасибо! А по выполнению кода, получается, должен результат записываться в список Test, верно? Он у меня пустой. Что ставить в настройках списка, какой разделитель?
Разделитель не играет роли, так как каждое слово напрямую добавляется в список новой строкой.
Он у вас пустой вовсе? У меня сниппет работает, только добавляет пустую строку.
1.png
P.S. А вам обязательно использовать код? В кубике "добавить текст в список" каждая строка добавляется в отельную строку списка.
P.S.S. По идеи, должна быть команда, которая это делает в коде. Но я пока далек от совершенство в zenno)
 
Последнее редактирование:

alya_6

Client
Регистрация
27.08.2018
Сообщения
172
Благодарностей
19
Баллы
18

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)