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?
Asked
Active
Viewed 3.6k times
2 Answers
48
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);

Jon Skeet
- 1,421,763
- 867
- 9,128
- 9,194
10
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();

driis
- 161,458
- 45
- 265
- 341