IEnumerable<T>é co-variante, mas não suporta o tipo de valor, apenas o tipo de referência. O código simples abaixo é compilado com sucesso: IEnumerable<string> strList = new List<string>(); IEnumerable<object> objList = strList; Mas mudar de stringpara intreceberá um erro...