Я хочу разбить эту строку:
string line = "First Name ; string ; firstName";
в массив их обрезанных версий:
"First Name"
"string"
"firstName"
Как я могу сделать все это в одной строке? Следующее дает мне ошибку «не удается преобразовать тип void»:
List<string> parts = line.Split(';').ToList().ForEach(p => p.Trim());
ForEach
работает с текущим экземпляромIEnumerable
и возвращаетсяvoid
.Ответы:
Пытаться
FYI, метод Foreach принимает действие (принимает T и возвращает void) для параметра, а ваша лямбда возвращает строку как строку. Trim возвращает строку
Метод расширения Foreach предназначен для изменения состояния объектов в коллекции. Поскольку строки неизменяемы, это не повлияет
Надеюсь, это поможет; o)
Седрик
источник
ForEach
это не метод расширения.ForEach
Метод не возвращает ничего, так что вы не можете назначить , что для переменной.Select
Вместо этого используйте метод расширения:источник
Потому что p.Trim () возвращает новую строку.
Вам необходимо использовать:
источник
В качестве альтернативы попробуйте следующее:
источник
Вот способ расширения ...
источник
попробуйте использовать Regex:
источник
Split возвращает тип string []. Напишите метод расширения:
Мне понравилось ваше решение, поэтому я решил добавить к нему и сделать его более удобным.
источник
Использовать регулярное выражение
Результат:
боб
джон
человек
Франциск
Люк
подветренный
боб
Объясните шаблон [,; \ s]: соответствует одному вхождению либо,; или пробел
источник