Combining List<Base> with List<Derived>

c#

Solution

In C# 3.0/.NET 3.5, `IEnumerable<T>` is not covariant. However, this would probably work OK in C# 4.0/.NET 4.0.

For now, you could (in .NET 3.5) use:

baseList.AddRange(derivedList.Cast<BaseItem>());

(note that you'll need "`using System.Linq;`" at the top of the file)

Before that... probably easiest just to loop:

foreach(BaseItem item in derivedList) {baseList.Add(item);}

Problem

How can I do the follwing: ``` public class BaseItem { public string Title { get; set; } } public class DerivedItem : BaseItem { public string Description { get; set; } } class Program { static void Main(string[] args) { List<BaseItem> baseList = new List<BaseItem>(); List<DerivedItem> derivedList = new List<DerivedItem>(); baseList.Add(new BaseItem() { Title = "tester"}); derivedList.Add(new DerivedItem() { Title = "derivedTester", Description = "The Description" }); baseList.AddRange(derivedList); } } ``` Thanks, Henk

Original source