从特定索引开始添加列表AddRange?

6

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

例如:

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 应该有三个元素:100、20 和 30。
我需要自己编写代码还是有内置的函数可以做到这一点?

http://msdn.microsoft.com/en-us/library/z883w3dc(v=vs.110).aspx - Shyju
@Shyju 他已经知道 AddRange() 方法了。 - DGibbs
3个回答

10

虽然AddRange方法中没有内置的功能,但是您可以使用LINQ:

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

这里有一个实时示例


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

打印输出:

100

20

30

您可以使用InsertRange结合Linq的Skip方法,该方法将跳过第一个元素。如果您想在特定索引之后插入,请使用此方法。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接