2011-03-16 32 views
25

posibles duplicados:
IList<int> vs List<int>
C# - List<T> or IList<T>Diferencia entre Lista y IList

¿Cuál es la diferencia entre la lista y IList, cuál tiene mejor rendimiento y cuándo utilizar la Lista sobre IList ¿y viceversa?

+1

duplicado: [IList vs Lista ] (http://stackoverflow.com/questions/1367539/ilistint-vs-listint) –

+0

Otro duplicado: [C# - Lista o IList ] (http: // stackoverflow .com/questions/400135/c-listt-or-ilistt) –

+0

@Devendra, márquelo porque la mayoría de las veces los comentarios son ignorados por las personas que responden la pregunta. –

Respuesta

4

List implementa IList interface

IList es una interfaz y no tiene ninguna aplicación, por lo que el rendimiento de IList dependiendo de la clase que implementa

9

Si usted está exponiendo su clase a través de una biblioteca que los demás puedan utilizar , generalmente quiere exponerlo a través de interfaces en lugar de implementaciones concretas. Esto ayudará si decides cambiar la implementación de tu clase más tarde para usar una clase concreta diferente. En ese caso, los usuarios de su biblioteca no necesitarán actualizar su código ya que la interfaz no cambia.

Si solo lo está utilizando internamente, es posible que no le importe demasiado, y usar List puede estar bien.

Para más cheque esta

Link

+6

¡Respuesta copiada del enlace! Al menos haz referencia al autor. –

+4

@ tm1rbrt Menciono eso en el enlace – Dotnet

-3

¿Cuál es la diferencia entre la programación y que? ¿Suena raro? ¡Es! Simplemente porque ambos no son comparables. Usted es una persona y la programación es una habilidad que tiene. También muchas personas pueden tener esta habilidad.

Similarmente IList es una interfaz que define algunas capacidades que cualquier clase puede implementar. List<T> es uno de ellos. Dado que no hay implementación en IList, no se trata de comparar el rendimiento.

3

En C# List es una implementación concreta de la interfaz IList. La lista es una implementación de la interfaz IList. La idea es programar contra la interfaz, no la implementación. Por lo general, sus métodos deben aceptar y devolver interfaces para colecciones. Esto deja su propia implementación y la sala de sus llamantes para decidir sobre la implementación real según sea necesario.

El beneficio de usar una interfaz es que puede implementar su funcionalidad o mejor aún, la única funcionalidad que necesita. Entonces, si solo se requiere iteración/enumeración, entonces no hay necesidad de los métodos Ordenar, Agregar.