Тема довольно простая, но многие начинающие разработчики при решении задач объединения массива в строку и разбиения строки на части начинают изобретать велосипед.
Пример. Пусть откуда-то нам пришла строка, в которой слова разделены запятыми:
string Months = "январь, февраль, март, апрель, , май";
Стоит задача разбить эту строку на подстроки, выбрав в качестве разделителя запятую. Вот как она решается с помощью метода Split:
string[] MonthArray = Months.Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries);
Первый параметр метода представляет собой строковый массив разделителей, состоящий, как правило, из одного элемента (запятая с пробелом). Но если вы приглядитесь повнимательнее, то увидите две запятые, идущие подряд. И между ними ничего нет. Поэтому используется второй параметр, значение которого говорит о том, что, если при разделении будут пустые строки, то нужно их удалить.
Теперь обратная задача. Пусть у нас имеется массив строк (например, какие-нибудь имена), а мы хотим объединить их в одну строку, вставив между ними запятые. Неопытные программисты пытаются решить эту задачу в цикле, на каждой итерации добавляя в конец результирующей строки запятую. Но это неприемлемо хотя бы потому что после последней строки будет запятая.
Вот простое и элегантное решение с использованием стандартного метода Join:
string result = string.Join(", ", MonthArray);
Первый параметр - это строка разделителя (запятая с пробелом), второй - массив строк.
Пример. Пусть откуда-то нам пришла строка, в которой слова разделены запятыми:
string Months = "январь, февраль, март, апрель, , май";
Стоит задача разбить эту строку на подстроки, выбрав в качестве разделителя запятую. Вот как она решается с помощью метода Split:
string[] MonthArray = Months.Split(new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries);
Первый параметр метода представляет собой строковый массив разделителей, состоящий, как правило, из одного элемента (запятая с пробелом). Но если вы приглядитесь повнимательнее, то увидите две запятые, идущие подряд. И между ними ничего нет. Поэтому используется второй параметр, значение которого говорит о том, что, если при разделении будут пустые строки, то нужно их удалить.
Теперь обратная задача. Пусть у нас имеется массив строк (например, какие-нибудь имена), а мы хотим объединить их в одну строку, вставив между ними запятые. Неопытные программисты пытаются решить эту задачу в цикле, на каждой итерации добавляя в конец результирующей строки запятую. Но это неприемлемо хотя бы потому что после последней строки будет запятая.
Вот простое и элегантное решение с использованием стандартного метода Join:
string result = string.Join(", ", MonthArray);
Первый параметр - это строка разделителя (запятая с пробелом), второй - массив строк.
Комментариев нет:
Отправить комментарий