¿Cuál es la diferencia entre un diccionario y una lista en C #?


Respuesta 1:

Un diccionario es un par clave-valor, mientras que una lista es una colección enumerable de objetos.

Su pregunta es aparentemente común, ya que Google lo sugirió de inmediato. Mira esto para una buena explicación.

Dejaré de lado las diferencias técnicas y solo hablaré sobre cómo difieren en la práctica. Una lista es un cuadro para almacenar cosas en las que no te importa demasiado el orden en que se encuentran. Un diccionario, por otro lado, es una colección de valores combinados con algún tipo de clave única. Dale la clave y escupe el valor emparejado.

Las listas son muy flexibles, pero esta flexibilidad puede tener un costo de tiempo de procesamiento general. Puede buscar elementos dentro de una lista mediante una consulta LINQ, y para listas pequeñas, generalmente está bien. Pero un diccionario está específicamente diseñado para esta tarea y, por lo tanto, lo hace MUCHO más rápido.


Respuesta 2:

Una Lista es una estructura de datos tipo matriz que almacena su contenido en memoria contigua y ofrece las mismas características de rendimiento asintomáticas que las matrices. Además, List agrega realizabilidad dinámica a la funcionalidad básica de tipo matriz que expone. Es importante tener en cuenta que la Lista no es una lista vinculada, sino más bien una estructura tipo matriz (si desea una Lista vinculada, puede ir a LinkedList ).

Un Dictionary es una matriz asociativa basada en hash que proporciona una búsqueda, inserción y eliminación muy eficientes de TValues ​​al asignarlos a una TKey. Puede acceder a los elementos utilizando la clave que asoció con el valor que desea, no puede acceder a los elementos por índice. Además, el orden en que se enumeran los elementos de la colección no es estable ni predecible. Por ejemplo, si cada persona tiene un número de seguro social único y desea poder encontrar rápidamente a la persona, si la hay, en la colección que tiene un SSN dado, puede usar Dictionary . A diferencia de la lista, no puede acceder rápidamente a la quinta persona de la colección, pero puede acceder a la persona. .. si alguno ... que tiene 123-45-6789 como su SSN muy rápidamente. En la lista (suponiendo que no esté ordenada), cada persona en la lista debería examinarse para ver si tienen el SSN que desea, el diccionario no necesita hacer esto y es muy rápido para este tipo de consulta.