Могу ли я разделить строку в стиле С# VB6 без ссылки на Microsoft.VisualBasic?

StackOverflow https://stackoverflow.com/questions/154706

  •  03-07-2019
  •  | 
  •  

Вопрос

К сожалению, похоже, нет string.Split(разделитель строк), есть только string.Split(разделитель символов).

Я хочу разбить свою строку на основе многосимвольного разделителя, как в VB6.Есть ли простой (то есть без ссылки на Microsoft.VisualBasic или изучения RegEx) способ сделать это на С#?

РЕДАКТИРОВАТЬ:Использование .NET Framework 3.5.

Это было полезно?

Решение

String.Split() имеет другие перегрузки.Некоторые из них принимают string[] аргументы.

string original = "first;&second;&third";
string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );

Другие советы

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

http://msdn.microsoft.com/en-us/library/8yttk7sy.aspx

Какая версия .Net?По крайней мере, версия 2.0 и более поздние версии включают следующие перегрузки:

.Split(string[] separator, StringSplitOptions options)  
.Split(string[] separator, int count, StringSplitOptions options)

Теперь, если бы они только исправили это, чтобы принимать любой IEnumerable<string> вместо просто массива.

Версия с регулярным выражением, вероятно, красивее, но это тоже работает:

string[] y = { "bar" };

string x = "foobarfoo";
foreach (string s in x.Split(y, StringSplitOptions.None))
      Console.WriteLine(s);

Это напечатает foo дважды.

 string[] stringSeparators = new string[] {"[stop]"};
    string[] result;
result = someString.Split(stringSeparators, StringSplitOptions.None);

с помощью http://msdn.microsoft.com/en-us/library/tabh47cf.aspx

Я постоянно использую это в .NET 2.0.

string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top