2016-10-01 2 views
1

Есть ли вообще для меня разбить строку и исключить последний сплит?Разделить строку и исключить последний сплит

Мои данные выглядят так: data1,data2,data3,, и поэтому, если я разделить элемент, последний элемент в массиве будет пустым, поэтому я бы предпочел исключить его из раскола.

Сейчас у меня есть это:

serialNumbers = delimittedSerials.ToString().Split(','); 

Конечно, я знаю, что могу просто оставить его и в моем for цикле просто знаю, чтобы пропустить последний элемент, но было интересно, если есть простой способ, чтобы просто исключить это во время расщепления.

ответ

8

вы можете разделить ее с помощью параметра StringSplitOptions:

data.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); 
+1

Я собирался отправить ответ, используя LINQ и LastIndexOf. .. но это просто правильный встроенный способ. :) –

+0

О, ничего себе, не знал, что у них есть этот вариант. Это довольно круто, спасибо! – Adjit

+0

Да, это другая перегрузка функции split. Это очень удобно, и вы можете разделить более чем на один символ. – Reynevan

2

Ниже код имеет Linq, где положение, чтобы исключить пустые данные

string input ="data1,data2,data3,"; 

var output = input.Split(',').Where(value => !string.IsNullOrEmpty(value)); 

foreach(string data in output) 
    Console.WriteLine(data); 
+0

Зачем это делать, когда это стандартные опции для 'Split'? (Обратите внимание, что это также не отвечает на вопрос, как задано в названии, что делает его еще более странным предложением). –

+0

Спасибо! это интересное предложение и полезно знать, но идти с другим методом. – Adjit

Смежные вопросы