tipos lenguajes datos clases biblioteca c# readonly generic-collections

clases - tipos de datos de lenguajes c#



¿Por qué no hay una clase ReadOnlyList<T> en la biblioteca System.Collections de C#? (1)

Existe ReadOnlyCollection<T> , que es la versión genérica de la anterior.

Puede crear uno de una List<T> directamente llamando a list.AsReadOnly() .

Leyendo sobre el problema de crear un vector primitivo de solo lectura en C # (básicamente, no puedes hacer eso),

public readonly int[] Vector = new int[]{ 1, 2, 3, 4, 5 }; // You can still changes values

Aprendí sobre ReadOnlyListBase . Esta es una clase base para contenedores de objetos que permiten acceder a sus posiciones pero no modificarlas. Incluso hay un ejemplo en el Microsoft msdn .

http://msdn.microsoft.com/en-us/library/system.collections.readonlycollectionbase.aspx

Modifiqué ligeramente el ejemplo en msdn para usar cualquier tipo:

public class ReadOnlyList<T> : ReadOnlyCollectionBase { public ReadOnlyList(IList sourceList) { InnerList.AddRange( sourceList ); } public T this[int index] { get { return( (T) InnerList[ index ] ); } } public int IndexOf(T value) { return( InnerList.IndexOf( value ) ); } public bool Contains(T value) { return( InnerList.Contains( value ) ); } }

... y funciona. Mi pregunta es, ¿por qué no existe esta clase en la biblioteca estándar de C #, probablemente en System.Collections.Generic? ¿Me lo estoy perdiendo? ¿Dónde está? Gracias.