Быстрый перевод List в string
Есть List с огромным количеством строк (с действительно огромным количеством строк). Как его можно быстро записать в одну строку ?
foreach(string s in list_1) string_1 = string_1 + s;
то запись в одну строку происходит минут 40-50.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Перевод из List в List
Всем доброго времени суток. Такой вопрос, как можно перевести List<int> в List<String>, и можно ли.
Разбить List на несколько обьектов c List
Задумался как я то кусочками все делить оказалось не так уж просто :scratch: List<string>.
Как передать list в поток и как такой же list вывести из потока?
Как передать list<string> в поток и как такой же list<string> вывести из потока в richtextbox.
Заполнить Dictionary> из файла ресурсов
Всем привет! У меня появилась проблема, мне нужно заполнить Dictionary<string, list<string>> из.
11835 / 8159 / 1244
Регистрация: 21.01.2016
Сообщений: 30,675
Stud_force, подсчитать суммарное количество символов, выделить массив char нужного размера, последовательно заполнить его содержимым всех строк, передать массив в конструктор string .
192 / 199 / 82
Регистрация: 11.04.2013
Сообщений: 1,086
Сообщение было отмечено Usaga как решение
Решение
var result = String.Join(", ", list_1.ToArray());
померяй сколько по времени?
Добавлено через 3 минуты
Сообщение от Stud_force
Преобразование списка в строку с использованием разделителя в C#
В этом посте будет обсуждаться, как преобразовать список в строку в C#, где отдельные элементы списка объединяются в одну строку с использованием заданного разделителя. Разделитель не следует добавлять до или после списка.
1. Использование String.Join() метод
Рекомендуемое решение — использовать String.Join() метод класса строк, который объединяет элементы указанного массива или коллекции вместе с указанным разделителем.
Как конвертировать list в string[]?
Привет, обитатели тостера. Я только начал изучать C++. Я свободно работаю с ООП в PHP. Умею мыслить логически. Но понять си пока не могу.
Нужно мне отпарсить строку. Разбить ее на массив по разделителю (как explode в php). Нашел много обрывков кода. Пытаюсь собрать вместе. Но как же мне это сделать?
string* parse(string s, int sort = -1) < listwords; istringstream ist(s); string tmp; int i = 1; while (ist >> tmp) < words.push_back(tmp); i++; >string* string_array = new string[i]; switch (sort) < case -1: // UNSORTED copy(words.begin(), words.end(), ostream_iterator(cout, "\n")); break; case 0: // ASC words.sort(); copy(words.begin(), words.end(), ostream_iterator(cout, "\n")); break; case 1: // DESC words.sort(greater()); copy(words.begin(), words.end(), ostream_iterator(cout, "\n")); break; > return string_array; >
Код может разбить строку и вывести результат в консоль. А мне нужен результат в виде массива строк. 3 часа уже безрезультатно гуглю.
P.S. Если не трудно, объясните по русски, что такое iterator
- Вопрос задан более трёх лет назад
- 1091 просмотр
1 комментарий
Оценить 1 комментарий
Да, вообще-то, там вектор надо сделать, заполнить его и вернуть.
Решения вопроса 1
Программист на «си с крестами» и не только
Итератор — это объект с семантикой указателя, который может указывать на N+1 точку в объекте.
Раз он с семантикой указателя, у него есть операции «унарная звезда» и −> (разыменование и разыменование+взятие поля). Также у итератора есть операция ++ (сдвинуться на следующую позицию). Если это т.н. «однонаправленный итератор» — всё, больше ничего.
Также бывают т.н. двунаправленные итераторы (есть операция −−), и итераторы произвольного доступа (их можно свободно складывать с числами — ну совсем как указатели). В частности, у std::list итераторы двунаправленные.
У итераторов неопределённое поведение…
• при попытке выйти за начало или конец;
• при попытке разыменовать, если он смотрит на последнюю позицию (отмеченную как «конец»).
Конкретно о задаче.
1. std::vector предпочтительнее std::list.
2. Не нужно возвращать string*, хватает какого-нибудь контейнера (std::vector или std::list).
3. Если функциональности и скорости istringstream хватает, флаг в руки! Я бы написал по хардкору, с нуля. Вот мой код, выдранный из моего проекта, наверно, будет несложно переделать его в учебный.
void parseCommaList( const char *aStart, // указатель на начало const char *aEnd, // указатель на символ за концом char aComma, // символ-разделитель bool aSkipEmpty, // true, если пустые подстроки пропускать ProcParseCommaList aCallback, // функция-нагрузка void *aData) // этот параметр нужен, чтобы передавать какие хочешь данные в функцию-нагрузку, удаляй его смело! < str::trim(aStart, aEnd); // моя функция; пододвигает aStart вперёд и aEnd назад, убирая пробелы. // Если удаление пробелов не нужно — удаляй! Если нужно — пиши сам. if (aStart == aEnd) return; const char *sstart = aStart; for (const char *p = aStart; p != aEnd; ++p) < if (*p != aComma) continue; const char *send = p; str::trim(sstart, send); // то же самое, можно убрать if (p != sstart || !aSkipEmpty) aCallback(sstart, send, aData); // замени на боевую нагрузку sstart = p + 1; >str::trim(sstart, aEnd); // то же самое, можно убрать if (sstart != aEnd || !aSkipEmpty) aCallback(sstart, aEnd, aData); // замени на боевую нагрузку >
И, соответственно, версия для std::string.
inline void parseCommaList( const std::string &aIn, char aComma, bool aSkipEmpty, ProcParseCommaList aCallback, void *aData)
Перевод из List в List
Всем доброго времени суток.
Такой вопрос, как можно перевести List в List, и можно ли так сделать например через foreach?
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Конвертировать один элемент из List> в list и string
Как можно перевести один выбранный элемент из List<List<Data>> myList в list и string? Например.
Разбить List на несколько обьектов c List
Задумался как я то кусочками все делить оказалось не так уж просто :scratch: List<string>.