从另一个IList的一部分快速创建List

时间:2019-05-12 15:31:05

标签: c# list

我想知道是否存在一种标准的方法来创建一个列表,该列表是由另一个列表的元素创建的,直到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 个答案:

答案 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

如果要使用startingIndexendingIndex从给定列表中获取子列表,则可以进行一些基本的数学运算

类似

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代替SkipTake

var newList = inputList.Range[startIndex..count]; //where count will be (endIndex - startIndex)

答案 1 :(得分:2)

是的,您可以使用System.Linq

var subset = yourList.Take(4).ToList();