Radhi
Radhi

Reputation: 6339

How to append enumerable collection to an existing list in C#

i have three functions which are returning an IEnumerable collection. now i want to combine all these into one List. so, is there any method by which i can append items from IEnumerable to a list. i mean without for each loop?

Upvotes: 35

Views: 40765

Answers (2)

Jon Skeet
Jon Skeet

Reputation: 1502086

Well, something will have to loop... but in LINQ you could easily use the Concat and ToList extension methods:

var bigList = list1.Concat(list2).Concat(list3).ToList();

Note that this will create a new list rather than appending items to an existing list. If you want to add them to an existing list, List<T>.AddRange is probably what you're after:

bigList.AddRange(list1);
bigList.AddRange(list2);
bigList.AddRange(list3);

Upvotes: 51

driis
driis

Reputation: 164331

If you already have a list:

list.AddRange(yourCollectionToAppend);

If you have 2 enumerables and haven't created the list yet:

firstCollection.Concat(secondCollection).ToList();

Upvotes: 10

Related Questions