Почему нет " t класс ReadOnlyList в библиотеке System.Collections C #?

Читая о проблеме создания примитивного вектора только для чтения в C # (в принципе, вы не можете этого сделать),

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

Я узнал о ReadOnlyListBase . Это базовый класс для контейнеров объектов, которые позволяют получать доступ к своим позициям, но не изменяют их. Даже есть пример в Microsoft msdn .

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

Я немного изменил пример в msdn использовать любой тип:

public class ReadOnlyList : 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 ) );
    }

}

... и это работает. У меня вопрос, почему этого класса нет в стандартной библиотеке C #, возможно, в System.Collections.Generic? Я скучаю по нему? Где это находится? aspx

Я немного изменил пример в msdn , чтобы использовать любой тип:

public class ReadOnlyList : 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 ) );
    }

}

... и он работает. У меня вопрос, почему этого класса нет в стандартной библиотеке C #, возможно, в System.Collections.Generic? Я скучаю по нему? Где это находится? aspx

Я немного изменил пример в msdn , чтобы использовать любой тип:

public class ReadOnlyList : 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 ) );
    }

}

... и он работает. У меня вопрос, почему этого класса нет в стандартной библиотеке C #, возможно, в System.Collections.Generic? Я скучаю по нему? Где это находится? Спасибо.

23
задан Baltasarq 30 September 2010 в 15:38
поделиться