2014-09-22 3 views
-2

У меня есть следующая строка:Расщепление строку на куски 2 C#

  string input ="this is a testx"; 

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

й будет находится эс ТХ

Я попытался удалить пробелы с:

input=input.Remove(input.IndexOf(' '),1); 

Т курица я не мог делать с расщеплением ...

+0

Какой код у вас пытался? Вы получаете исключение или неправильные результаты? –

+2

В чем вопрос? – Dmitry

ответ

4
IEnumerable<string> output = input 
    .Replace(" ", string.Empty) 
    .Select((ch, i) => new{ch, grp = i/2}) 
    .GroupBy(x => x.grp) 
    .Select(g => string.Concat(g.Select(x => x.ch))); 

или более здраво :)

input = input.Replace(" ", string.Empty); 
IEnumerable<string> output = 
    Enumerable.Range(0, input.Length/2).Select(x => input.Substring(x * 2, 2)); 

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

foreach(var item in output) 
{ 
    Console.WriteLine(item); 
} 
+2

Этот момент, когда 2 строки 'for' заменены на 5 строк LINQ :-) – zerkms

+0

Я относительно новичок в программировании, и я никогда не использовал LINQ раньше :( Я не понял весь код – WaelT

+0

@zerkms Я испытал бит момента самомоднейшего момента, когда я увидел ваш комментарий! Надеюсь, мой второй подход вносит изменения :-) – spender