我想知道是否存在一种标准的方法来创建一个列表,该列表是由另一个列表的元素创建的,直到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”循环。
答案 0 :(得分:4)
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
或者您可以尝试@Crowcoder建议的Linq操作,
List<int> newList = inputList.Skip(startIndex).Take(endIndex).ToList();
如果您使用的是C#8,则可以使用range代替Skip
和Take
,
var newList = inputList.Range[startIndex..count]; //where count will be (endIndex - startIndex)
答案 1 :(得分:2)
是的,您可以使用System.Linq
。
var subset = yourList.Take(4).ToList();