Подтвердить что ты не робот

Добавление элементов из одного списка в другой С#

Каков самый простой способ добавления элементов одного списка в другой?

Например, у меня есть два списка:

Список A, содержащий x элементов Список B, содержащий элементы y.

Я хочу добавить элементы из B в A, так что теперь A содержит элементы X + Y. Я знаю, что это можно сделать с помощью цикла, но есть ли встроенный метод для этого? Или любой другой метод?

4b9b3361

Ответ 1

В вашем вопросе описывается метод 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 были добавлены к listA в вызове AddRange.

Ответ 2

Чтобы присоединиться к двум спискам, вы можете сделать

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, если вы в порядке с одним из исходных списков.