una lista genérica <> ha sido diseñado para la velocidad y el uso interno. La colección genérica <> por otro lado, ha sido diseñada para ser extensible.
Una de las ventajas de la clase Collection <> es que puede anular algunos métodos diferentes (ClearItems(), InsertItem(), RemoveItem() y SetItem()). El tipo genérico Lista <>, por otro lado, no proporciona ningún método que pueda ser anulado.
¿Por qué es esto importante? Digamos, por ejemplo, que los requisitos futuros obligan a plantear un evento ItemAdded cuando se agrega un elemento a la colección. Si utilizó el tipo List <>, no tiene muchas opciones. Sin embargo, si hubiera utilizado la clase Collection <>, tiene la posibilidad de exponer un nuevo evento ItemAdded y anular el método InsertItem() para que se eleve el evento ItemAdded cuando se agrega un elemento.
¿Puede proporcionar un enlace a esta recomendación de EM? Dudo que cualquiera de las clases base pueda cambiarse en futuras versiones de FW. – aku
También CLR no afecta BCL, entonces ¿cómo puede afectar la Lista? –
aku
MS tiene un historial de salir de su camino para mantener la compatibilidad entre versiones. Tengo que pensar que un cambio radical en la Lista (De T) es muy poco probable. – ScottS