CollectionBase Provides the abstract base class for a strongly typed collection. : CollectionBase « Collections Data Structure « C# / C Sharp






CollectionBase Provides the abstract base class for a strongly typed collection.

  

using System;
using System.Collections;

public class MyCollection : CollectionBase  {

   public Int16 this[ int index ]  {
      get  {
         return( (Int16) List[index] );
      }
      set  {
         List[index] = value;
      }
   }

   public int Add( Int16 value )  {
      return( List.Add( value ) );
   }

   public int IndexOf( Int16 value )  {
      return( List.IndexOf( value ) );
   }

   public void Insert( int index, Int16 value )  {
      List.Insert( index, value );
   }

   public void Remove( Int16 value )  {
      List.Remove( value );
   }

   public bool Contains( Int16 value )  {
      return( List.Contains( value ) );
   }

   protected override void OnInsert( int index, Object value )  {
   }

   protected override void OnRemove( int index, Object value )  {
   }

   protected override void OnSet( int index, Object oldValue, Object newValue )  {
   }

   protected override void OnValidate( Object value )  {
      if ( value.GetType() != typeof(System.Int16) )
         throw new ArgumentException( "value must be of type Int16.", "value" );
   }

}


public class SamplesCollectionBase  {
   public static void Main()  {
      MyCollection myI16 = new MyCollection();
      myI16.Add( (Int16) 1 );
      myI16.Add( (Int16) 2 );

      PrintValues1( myI16 );
      PrintValues2( myI16 );
      PrintIndexAndValues( myI16 );
   }
   public static void PrintIndexAndValues( MyCollection myCol )  {
      for ( int i = 0; i < myCol.Count; i++ )
         Console.WriteLine( "   [{0}]:   {1}", i, myCol[i] );
   }
   public static void PrintValues1( MyCollection myCol )  {
      foreach ( Int16 i16 in myCol )
         Console.WriteLine( "   {0}", i16 );
   }
   public static void PrintValues2( MyCollection myCol )  {
      System.Collections.IEnumerator myEnumerator = myCol.GetEnumerator();
      while ( myEnumerator.MoveNext() )
         Console.WriteLine( "   {0}", myEnumerator.Current );
   }
}

   
    
  








Related examples in the same category

1.A collection of elements of type String
2.Keyed Collection