Hace poco respondi la pregunta de ¿Cómo agregar elementos a un array en C#? y mientas proponia la solución alternativa que era usar la clase List
, me recorde que tambien hay una clase llamada ArrayList
.
Al comparar la documentación de ArrayList y List, en algunas partes de estos articulos dice:
"La clase ArrayList esta diseñada para retener colecciones heterogeneas de objetos. Sin embargo, no siempre ofrece el mejor rendimiento."
Y tambien
"La clase List se ejecuta mejor en la mayoria de casos y es de tipado seguro."
Después el articulo de List
trata de explicar porqué List
tiene un mejor rendimiento, pero esta es la parte que no entiendo. Dice literalmente:
"For a List, if a value type is used for type T, the compiler generates an implementation of the List class specifically for that value type. That means a list element of a List object does not have to be boxed before the element can be used."
"Para una List, si un tipo es usado para el tipo en la lista, el compilador genera una implementación de la clase List especificamente para ese valor de tipo. Eso significa que un elemento listado del objeto List no tiene que estar encajonado antes de poder ser usado."
*Traducción libre de mi parte
¿Cúal es realmente la diferencia entre ArrayList y List y por qué dice que List tiene un mejor rendimiento?
P.D.: +10 brownie points al que me diga que debo entender por "boxed" en ese parrafo, que la verdad no pude traducirlo muy bien. Edit: Flxtr se ha llevado los brownie points.