Как я могу разделить строку с помощью разделителя строк?

#c# #string #.net-4.0 #split

#c# #строка #.net-4.0 #разделить

Вопрос:

Как я могу разделить строку с помощью разделителя строк?

Я пытался:

 string[] htmlItems = correctHtml.Split("<tr");
  

Я получаю сообщение об ошибке:

 Cannot convert from 'string' to 'char[]'
  

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

Комментарии:

1. Я не вижу никаких перегрузок, которые принимают строку в качестве единственного параметра. Я что-то упускаю? msdn.microsoft.com/en-us/library/system.string.split.aspx

2. @ChaosPandion: Вопрос в том, как бы я разделил строку по заданному слову.

Ответ №1:

Существует версия string.Split , которая принимает массив строк и параметр options:

 string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] {"[stop]"};
string[] result = source.Split(stringSeparators, StringSplitOptions.None);
  

таким образом, даже если у вас есть только один разделитель, который вы хотите разделить, вам все равно придется передать его в виде массива.

Принимая ответ Майка Хофера за отправную точку, этот метод расширения немного упростит его использование.

 public static string[] Split(this string value, string separator)
{
    return value.Split(new string[] {separator}, StringSplitOptions.None);
}
  

Комментарии:

1. Спасибо, это сработало замечательно, хотя код немного запутанный. 🙂

Ответ №2:

Ответ №3:

Разве это не та перегрузка, которую вы ищете? http://msdn.microsoft.com/en-us/library/1bwe3zdy.aspx

Ответ №4:

Вам также необходимо использовать параметр StringSplitOptions при разделении.

Ответ №5:

Напишите метод расширения:

 public static string[] Split(this string value, string separator)
{
    return value.Split(separator.ToCharArray());
}
  

Проблема решена.

Комментарии:

1. Хорошая идея, хотя эта реализация завершится неудачей, поскольку разделитель длиннее одного символа.