Строковая операция с использованием Linq - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь преобразовать FOO BAR BAZ в "GPCSC[", "N@@", используя linq.

Я пришел так близко:

var res2 = new String("FOO BAR BAZ ".ToList().Select((x, i) => x = (i % 2 == 0 ? ++x : --x )).ToArray());

, который выводит

GNPC@SC @ [

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

`"GPCSC[", "N@@"`

Я пока не могу разобраться.

Есть ли какие-нибудь решения по этому поводу?

PS: я ищу простое решение, а не набор строк кодов

Fiddle Link: https://dotnetfiddle.net/ml8bOC

1 Ответ

0 голосов
/ 22 декабря 2018

Возможно, вам понадобится GroupBy:

string str = "GNPC@SC@[";

var groups = str.Select((v, i) => new { Group = i % 3, Ch = v })
                .GroupBy(item => item.Group == 1)
                .Select(group => string.Join("", group.Select(item => item.Ch)))
                .ToList();

// groups: ["GPCSC[", "N@@"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...