列出特定索引的AddRange?

Ass*_*ast 3 c# list add

在通用列表中是否有一个内置函数可以从特定索引中的另一个列表中添加一个范围,还是我必须编写自己的?

例如:

List<int> list1 = new List<int>();
List<int> list2 = new List<int>();

list1.Add(10);
list1.Add(20);
list1.Add(30);

list2.Add(100);
//list2.AddRange(list1, 1) Add from list1 from the index 1 till the end
Run Code Online (Sandbox Code Playgroud)

在这个例子中,list2应该有3个元素:100,20和30.

我应该自己写还是有内置功能可以做到这一点?

Cod*_*gue 7

不是内置于AddRange,但您可以使用LINQ:

list2.Add(100);
list2.AddRange(list1.Skip(1));
Run Code Online (Sandbox Code Playgroud)

这是一个实例.


Kis*_*mar 5

List<int> list1 = new List<int>();
List<int> list2 = new List<int>();

list1.Add(10);
list1.Add(20);
list1.Add(30);

list2.Add(100);
list2.InsertRange(1,list1.Skip(1));
Run Code Online (Sandbox Code Playgroud)

打印输出:

100

20

30

您可以将 InsertRange 与 linq Skip 方法结合使用,这将跳过第一个元素。如果你想在特定索引之后插入。