Para aclarar las otras respuestas:
IList<T>
hace no requieren la aplicación de un tipo a aplicar también IList
. IEnumerable<T>
requiere IEnumerable
. Podemos salirse con la nuestra con IEnumerable<T>
porque una secuencia de T siempre se puede tratar como una secuencia de objetos. Pero una lista de jirafas no puede tratarse como una lista de objetos; puedes agregar un tigre a una lista de objetos.
Sin embargo, List<T>
hace inseguro implemente IList
. Si intenta agregar un tigre a un List<Giraffe>
colocándolo primero en IList, obtendrá una excepción.
Así que para responder a la pregunta: ¿Si todo lo que tiene en la mano es un IList<T>
, puede especulativamente echarlo a IList
con los "como" operador, y si eso no funciona, a continuación, crear una nueva ArrayList
o List<object>
y copiar el contenido pulg. Si lo que tiene a mano es List<T>
, entonces ya tiene algo que implementa IList
directamente.
<< ... agrega un tigre a una lista ... obtendrás una excepción. >> sin mencionar un lío desagradable. - apreciar la objetificación -vHelpful. –
justSteve