Si yo estoy exponiendo un miembro interno a través de una propiedad de colección a través de:¿Una colección <T> envuelve un IList <T> o enumera sobre el IList <T>?
public Collection<T> Entries
{
get { return new Collection<T>(this.fieldImplimentingIList<T>); }
}
Cuando esta propiedad se llama lo que sucede? Por ejemplo lo que sucede cuando se llama a las siguientes líneas de código:
T test = instanceOfAbove.Entries[i];
instanceOfAbove[i] = valueOfTypeT;
Está claro que cada vez que esta propiedad se llama se crea un nuevo tipo de referencia, pero lo que sucede Acctually? ¿Simplemente ajusta el IList<T>
debajo, enumera sobre el IList<T>
y crea una nueva instancia de Collection<T>
? Me preocupa el rendimiento si esta propiedad se usa en un bucle for
.
'Colección' envuelve el 'IList '. ¿Por qué lo devuelve como una Colección ? ¿Por qué no exponerlo como IEnumerable ? ¿Estás tratando de evitar la modificación de la lista subyacente? –
Gracias por la pregunta! No pensé que Collection es solo una lista de conteo;) –