Есть список
List<string> lst = new List<string>(){"киев","москва","токио","БЕРЛИН","тегеран"};
Как убрать из него элементы которые идут после элемента, у которого все символы заглавные. Т.е. убрать БЕРЛИН
(так как у него все буквы заглавные) и тегеран
Я знаю как сделать сравнение - а не все ли символы в строки заглавные?
lst.Where(x=>x.IsUpper()==x)...
Однако не совсем понятно как удалять этот и последующий элементы.
Where
здесь не очень подходить так как возвращает "список"(IEnumerable<string>)
результатов, лучше использовать First
:
int index = lst.IndexOf(lst.First(x=>x.IsUpper()==x));
А еще лучше сделать так
int index = lst.FindIndex(x=>x.IsUpper()==x);
Так как нам нужен индекс, а не сам элемент списка. Ну и удаление:
if (index > -1) { lst.RemoveRange(index, lst.Count - index); }
Можно использовать метод TakeWhile
- он выбирает все элементы, пока не сработает условие.
List<string> lst = new List<string>() { "киев", "москва", "токио", "БЕРЛИН", "тегеран" };
lst = lst.TakeWhile(s => s.ToUpper() != s).ToList();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вот решил перейти с С++ на С# и наткнулся на такую проблемуКак я понял, в шарпе нет шаблонов как таковых, и это компенсируется интерфейсами...
Начал изучать MVVM и столкнулся, как наверное и многие другие, с определенным недопониманиемВ многочисленных примерах реализации MVVM, доступных...