列出特定索引的AddRange?

时间:2013-12-13 13:35:59

标签: 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

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

我应该自己编写还是内置函数可以执行此操作?

2 个答案:

答案 0 :(得分:6)

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

list2.Add(100);
list2.AddRange(list1.Skip(1));

这是live example

答案 1 :(得分:2)

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));

打印时的输出:

100

20

30

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