Попытка получить все элементы после первого соответствия с помощью linq

Как я получаю все элементы после первого, не запускающегося с a "-" использование linq?

var arr = new[] {"-s1", "-s2", "va", "-s3", "va2", "va3"};
var allElementsAfterVA = from a in arr where ???? select a;

Я хочу allElementsAfterVA быть "-s3", "va2", "va3"

10
задан MatteS 11 March 2010 в 20:59
поделиться

4 ответа

Чтобы найти все аргументы после первого, НЕ начинающегося с "-", вы можете сделать:

var elementsAfterFirstNonDash = arr.SkipWhile(i => i[0] != '-').Skip(1);

Это найдет "va", затем пропускает его через Пропустить (1). Остальные аргументы будут возвращены.

16
ответ дан 3 December 2019 в 21:59
поделиться
arr.Where((n, i) => i > 0 && n.StartsWith("-"))

дает

-s2 -s3

Это то, что вы имели в виду?

0
ответ дан 3 December 2019 в 21:59
поделиться

Не могли бы вы уточнить? Если я правильно понял, первый, начинающийся с "-", это "-s1", поэтому элементы после него будут "-s2", "va", "-s3", "va2", "va3", а не "-s3", "va2", "va3"

.
0
ответ дан 3 December 2019 в 21:59
поделиться

Я не совсем понял вопрос из вашего текста, но глядя на пример: Вы смотрели на SkipWhile()? Похоже, что это связано/полезно?

0
ответ дан 3 December 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: