c # удалить все в коллекции List после определенного индекса - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу иметь возможность удалить все элементы в List<string> после определенного индекса

List<string> s_array= new List<string>();
s_array.Add("a");
s_array.Add("x");
s_array.Add("c");
s_array.Add("y");
s_array.Add("e");
s_array.Add("e");
s_array.RemoveAll(/* what goes here?*/);

Что можно добавить в RemoveAll для достижения этой цели?например, сказать, что я хотел вырезать все, начиная с c и далее?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Не уверен, каковы все ваши параметры, поэтому трудно сказать, какой подход будет лучшим.

Используя RemoveAll(), вы можете сделать:

s_array.RemoveAll(x => s_array.IndexOf(x) > s_array.IndexOf("c"));
0 голосов
/ 01 февраля 2019

Вы можете использовать ключевые слова Take или Skip, чтобы помочь - Пример:

var s_array = new List<string> {"a","x","c","y","e","e" };

var sorted = (from x in s_array orderby x select x);

var first3 = sorted.Take(3);

var last2 = sorted.Take(2).Skip(5);
...