Why does this not compile?
public interface IConcrete { } public class Concrete : IConcrete { } public class Runner { public static void Main() {
IList wouldn't work because IList isn't contravariant. It needs to be IEnumerable though again this only works in 4.0. You could also just use a ConvertAll with a lambda expression and that will work in 3.5