Как я получаю все элементы после первого, не запускающегося с a "-"
использование linq?
var arr = new[] {"-s1", "-s2", "va", "-s3", "va2", "va3"};
var allElementsAfterVA = from a in arr where ???? select a;
Я хочу allElementsAfterVA
быть "-s3", "va2", "va3"
Чтобы найти все аргументы после первого, НЕ начинающегося с "-", вы можете сделать:
var elementsAfterFirstNonDash = arr.SkipWhile(i => i[0] != '-').Skip(1);
Это найдет "va", затем пропускает его через Пропустить (1). Остальные аргументы будут возвращены.
arr.Where((n, i) => i > 0 && n.StartsWith("-"))
дает
-s2 -s3
Это то, что вы имели в виду?
Не могли бы вы уточнить? Если я правильно понял, первый, начинающийся с "-", это "-s1", поэтому элементы после него будут "-s2", "va", "-s3", "va2", "va3", а не "-s3", "va2", "va3"
.Я не совсем понял вопрос из вашего текста, но глядя на пример: Вы смотрели на SkipWhile()? Похоже, что это связано/полезно?