Предположим, у вас есть такой вывод:
Word1 Word2 Word3 Word4
Где количество пробелов между словами произвольно. Я хочу разбить это на набор слов.
Я использовал следующий код:
string[] tokens =
new List<String>(input.Split(' '))
.FindAll
(
delegate(string token)
{
return token != String.Empty;
}
).ToArray();
Не совсем эффективно, но отлично справляется со своей задачей.
Как бы ты это сделал?





Я бы использовал регулярное выражение для разделения с «\ w +» для шаблона.
Он уже упоминает string.Split (). Ему не хватает StringSplitOptions.RemoveEmptyEntries:
string[] tokens = input.Split(new char[] { ' ' },
StringSplitOptions.RemoveEmptyEntries);
Гений. Я не заметил этой перегрузки.
Согласитесь, анонимные делегаты делают это круче =)
Круче, да, разборчивее и нагляднее ... не то чтобы. Я тоже никогда не замечал этой перегрузки, но она просто потрясающая! +1!
Самое приятное то, что при желании в массив легко включать табуляции, новые строки и другие пробелы.
Видите, вот почему я боюсь регулярных выражений.