Как я могу разделить и обрезать строку в части все на одной строке?

Едва ли определенная подсказка, но общее руководство: проверьте свои источники. C++ является старым языком, и он изменился много за эти годы. Лучшие практики изменились с ним, но к сожалению существует все еще большая старая информация там. Были некоторые очень хорошие книжные рекомендации на здесь - я могу вторая покупка каждых из книг C++ Scott Meyers. Познакомьтесь с Повышением и со стилями кодирования, используемыми в Повышении - люди, связанные с тем проектом, находятся на передовом рубеже дизайна C++.

не перестраивают колесо. Познакомьтесь с STL и Повышением, и используйте их средства каждый раз, когда возможная прокрутка Ваше собственное. В частности, используйте строки STL и наборы, если Вы не имеете очень, очень серьезное основание не к. Узнайте auto_ptr и библиотеку интеллектуальных указателей Повышения очень хорошо, поймите, под которыми обстоятельствами каждый тип интеллектуального указателя предназначается, чтобы использоваться, и затем использовать интеллектуальные указатели везде, Вы, возможно, иначе использовали необработанные указатели. Ваш код будет так же эффективен и намного менее подвержен утечкам памяти.

Использование static_cast, dynamic_cast, const_cast, и reinterpret_cast вместо бросков C-стиля. В отличие от бросков C-стиля они сообщат, просите ли Вы действительно другой тип броска, чем Вы думать, что Вы просите. И они выделяются визуально, предупреждая читателя, что бросок происходит.

111
задан abatishchev 8 February 2012 в 12:34
поделиться

3 ответа

Попробуйте

List<string> parts = line.Split(';').Select(p => p.Trim()).ToList();

FYI, метод Foreach принимает действие (принимает T и возвращает void) в качестве параметра, а лямбда-выражение возвращает строку в виде строки. Обрезка возвращает строку

Каждое расширение предназначен для изменения состояния объектов в коллекции. Поскольку строки неизменяемы, это не повлияет.

Надеюсь, это поможет; o)

Седрик

263
ответ дан 24 November 2019 в 02:58
поделиться

Метод ForEach ничего не возвращает, поэтому вы не можете присвоить это переменной.

Используйте метод расширения Select вместо этого:

List<string> parts = line.Split(';').Select(p => p.Trim()).ToList();
22
ответ дан 24 November 2019 в 02:58
поделиться

Поскольку p.Trim () возвращает новую строку.

Вам необходимо использовать:

List<string> parts = line.Split(';').Select(p => p.Trim()).ToList();
5
ответ дан 24 November 2019 в 02:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: