How to merge two IQueryable lists

Solution 1:

You're not using the return value - just like all other LINQ operators, the method doesn't change the existing sequence - it returns a new sequence. So try this:

var list3 = list1.Concat(list2);

or

var list4 = list1.Union(list2);

Union is a set operation - it returns distinct values.

Concat simply returns the items from the first sequence followed by the items from the second sequence; the resulting sequence can include duplicate items.

You can think of Union as Concat followed by Distinct.

Solution 2:

Even

var result = Enumerable.Concat(list1, list2);

doesn't work?

And be sure that lists are empty, not null:

var result = Enumerable.Concat(
    list1 ?? Enumerable.Empty<MediaType>()
    list2 ?? Enumerable.Empty<MediaType>());

Also try:

var result = Enumerable.Concat(
    list1.AsEnumerable(),
    list2.AsEnumerable());