2012-11-20 187 views
12

将一个列表的元素添加到另一个列表的最简单方法是什么?将元素从一个列表添加到另一个C#

例如,我有两个列表:

其中包含X的项目包含ÿ项 列表B

列表A。

我想将B的元素添加到A中,以便A现在包含X + Y项目。我知道这可以使用循环完成,但有没有内置的方法呢?还是其他技术?

回答

25

您的问题描述了List.AddRange方法,该方法将其参数的所有元素复制到调用它的列表对象中。

作为一个例子,代码段

List<int> listA = Enumerable.Range(0, 10).ToList(); 
List<int> listB = Enumerable.Range(11, 10).ToList(); 
Console.WriteLine("Old listA: [{0}]", string.Join(", ", listA)); 
Console.WriteLine("Old listB: [{0}]", string.Join(", ", listB)); 
listA.AddRange(listB); 
Console.WriteLine("New listA: [{0}]", string.Join(", ", listA)); 

打印

Old listA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
Old listB: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 
New listA: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 

表示的listB所有元素在AddRange呼叫加入到listA

5

要加入两个列表,你可以做

listA.AddRange(listB); // listA will contain x+y items 

// listC contains x+y items, listA and listB are unchanged. 
var listC = listA.Concat(listB); 

你可以使用后者的重新分配,而不是listA

listA = listA.Concat(listB).ToList(); 

但没有任何如果你可以修改其中一个o,则可以优于AddRange最重要的名单。

相关问题