Быстро создать список из части другого IList - PullRequest
2 голосов
/ 12 мая 2019

Я хотел бы знать, есть ли стандартный способ создания списка из элементов другого списка вплоть до указанного индекса, например, в python, например:

List1(1,2,3,4,5,6,7,8,9,0);
List2 = new List(List1, upToIndex = 4)
List2(1,2,3,4,5)

Мне нужен действительно быстрый способделать это и хотеть избежать простого цикла for, если есть способ.

Ответы [ 2 ]

4 голосов
/ 12 мая 2019

Как насчет list.GetRange(startIndex, count)

List<int> inputList = new List<int>() { 1,2,3,4,5,6,7,8,9,9};
List<int> newList = inputList.GetRange(0, 4); //Output: 1,2,3,4

Если вы хотите получить подсписок из заданного списка, используя startingIndex и endingIndex, тогда вы можете сделать некоторые базовые математические вычисления

что-то вроде

List<int> newList = inputList.GetRange(startIndex, (endIndex - startIndex));  //(endIndex - startIndex) this will return count of sub list

Или вы можете попробовать операцию Linq, предложенную @ Crowcoder ,

List<int> newList = inputList.Skip(startIndex).Take(endIndex).ToList();

Если вы используете C # 8, тогда вы можете использовать диапазон вместо Skip и Take,

var newList = inputList.Range[startIndex..count]; //where count will be (endIndex - startIndex)
2 голосов
/ 12 мая 2019

Да, вы можете взять с System.Linq.

var subset = yourList.Take(4).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...