Добавление в список многострочную переменную

arbplv

Client
Регистрация
28.03.2020
Сообщения
373
Реакции
23
Баллы
18
Парни, выручайте.
В переменную попадают значения, их нужно засунуть в список, каждое на новой строчке.
В переменной лежит вот такое значение:
"строка_1
строка_2
строка_3"
Добавляю в список, list.add(var) открываю его, вижу 3 строчки, проверяю сколько количество строчек через list.count(), показывает 1, удаляю перенос, нажимаю enter (для переноса этой одной строки, что до этого удалили), после этого проверяю, показывает как нужно 3шт. Видимо есть какой-то невидимый разделитель типа "\r\n" , подскажите как по нему сделать split("\r\n") и положить все значения этой переменной в список? каждое значение на нормальной новой строчке, чтобы потом можно было взять эту строку и поработать с ней?
спасибо)))
 
Все просто, обработка текста и в список, так как на скриншоте, со своими строками
Посмотреть вложение 71953
Результат получишь, такой
Посмотреть вложение 71954
Не, мне не так. Распишу подробнее. Решение нужно С#
C#:
Развернуть Свернуть Копировать
//В переменную попадает вот такая информация
string data = "Значение1
    значение2
    значение3"; // не ругайтесь, просто покажываю что разделение значений enter
//добавляем значения из этой пременной в лист
List <string> name_list = new List <string>();
name_list.add(data);
//Возвращаю значения
return name_list.count();
//хотелось бы получить 3, но получаю 1.
Вопрос, как корректно добавить переменную в список, чтобы каждое значение было на своей строке.
 
Не, мне не так. Распишу подробнее. Решение нужно С#
C#:
Развернуть Свернуть Копировать
//В переменную попадает вот такая информация
string data = "Значение1
    значение2
    значение3"; // не ругайтесь, просто покажываю что разделение значений enter
//добавляем значения из этой пременной в лист
List <string> name_list = new List <string>();
name_list.add(data);
//Возвращаю значения
return name_list.count();
//хотелось бы получить 3, но получаю 1.
Вопрос, как корректно добавить переменную в список, чтобы каждое значение было на своей строке.
В коде я не понимаю, но так вроде, на кубиках получилось
1612563126408.png
 
C#:
Развернуть Свернуть Копировать
List<string> name_list = new List<string>(data.Split(new[]{Environment.NewLine}, StringSplitOptions.None).ToList());
return name_list.Count;
Что-то вроде этого. Зенки нет под рукой. Если что, сам подправишь, мысль уловил, думаю
 
  • Оценить
Реакции: arbplv
C#:
Развернуть Свернуть Копировать
List<string> name_list = new List<string>(data.Split(new[]{Environment.NewLine}, StringSplitOptions.None).ToList());
return name_list.Count;
Что-то вроде этого. Зенки нет под рукой. Если что, сам подправишь, мысль уловил, думаю
Да, типа такого и нужно, ща читану про эти перегрузки и разберусь. Спасибо!
 
  • Оценить
Реакции: Alexmd
C#:
Развернуть Свернуть Копировать
List<string> name_list = new List<string>(data.Split(new[]{Environment.NewLine}, StringSplitOptions.None).ToList());
return name_list.Count;
Что-то вроде этого. Зенки нет под рукой. Если что, сам подправишь, мысль уловил, думаю
Хм, все равно записывается одной строчкой... Что то в этом чудном переносе строк, буду копать туда... Т.к. по другим символам все переносится корректно...
 
Последнее редактирование:
Посмотреть бы на переменную. Как там записаны эти строки... А, если просто по '\n' сплитануть?
Начал писать и увидел твой ответ, да просто по .Split(new[] {"\n"}, StringSplitOptions.None) все отработало корректно, до этого делал "\r\n" и были ошибки, спасибо) в любом случае ты сильно мне помог!!!
 
  • Оценить
Реакции: Alexmd
Пихать \n в массив и делать лишние конвертации бессмысленно - это и так char
return (int)'\n';
Но надо учитывать, что, если тебе попадется \r\n перенос, то \r так и останется в строке. Поэтому, наверное, правильно будет сделать так:
C#:
Развернуть Свернуть Копировать
string data = "aaa\r\nbbb\nccc";
List <string> name_list = new List<string>();
foreach(string s in data.Split('\n'))
    name_list.Add(s.Trim());
 
Последнее редактирование:

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