如何最简单地将一个列表的元素添加到另一个列表中?
例如,我有两个列表:
List A 包含 x 个项目 List B 包含 y 个项目。
我想将B的元素添加到A中,使得A现在包含X+Y个项目。我知道可以使用循环来实现,但是否有内置的方法可以实现此功能?或者其他任何技术?
如何最简单地将一个列表的元素添加到另一个列表中?
例如,我有两个列表:
List A 包含 x 个项目 List B 包含 y 个项目。
我想将B的元素添加到A中,使得A现在包含X+Y个项目。我知道可以使用循环来实现,但是否有内置的方法可以实现此功能?或者其他任何技术?
您的问题描述了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]
这表明在AddRange
调用中将listB
的所有元素添加到listA
中。
要合并两个列表,您可以执行以下操作
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();
但如果你愿意在原始列表之一进行修改,那么与AddRange
相比,并没有任何特别的优势。