NameObjectCollectionBase is the base class for a collection of associated String keys and Object values : NameObjectCollectionBase « Collections Data Structure « C# / C Sharp






NameObjectCollectionBase is the base class for a collection of associated String keys and Object values

 

using System;
using System.Collections;
using System.Collections.Specialized;

public class MyCollection : NameObjectCollectionBase
{
   public MyCollection()  {
   }
   public MyCollection( IDictionary d, Boolean bReadOnly )  {
      foreach ( DictionaryEntry de in d )  {
         this.BaseAdd( (String) de.Key, de.Value );
      }
      this.IsReadOnly = bReadOnly;
   }
   public DictionaryEntry this[ int index ]  {
      get  {
          return ( new DictionaryEntry( 
              this.BaseGetKey(index), this.BaseGet(index) ) );
      }
   }
   public Object this[ String key ]  {
      get  {
         return( this.BaseGet( key ) );
      }
      set  {
         this.BaseSet( key, value );
      }
   }
   public String[] AllKeys  {
      get  {
         return( this.BaseGetAllKeys() );
      }
   }
   public Array AllValues  {
      get  {
         return( this.BaseGetAllValues() );
      }
   }
   public String[] AllStringValues  {
      get  {
         return( (String[]) this.BaseGetAllValues( typeof( string ) ));
      }
   }
   public Boolean HasKeys  {
      get  {
         return( this.BaseHasKeys() );
      }
   }
   public void Add( String key, Object value )  {
      this.BaseAdd( key, value );
   }
   public void Remove( String key )  {
      this.BaseRemove( key );
   }
   public void Remove( int index )  {
      this.BaseRemoveAt( index );
   }
   public void Clear()  {
      this.BaseClear();
   }

}

public class SamplesNameObjectCollectionBase  {
   public static void Main()  {
      IDictionary d = new ListDictionary();
      d.Add( "A", "a" );
      d.Add( "B", "b" );
      d.Add( "C", "c" );
      MyCollection myROCol = new MyCollection( d, true );
      myROCol.Add( "D", "d" );
      PrintKeysAndValues( myROCol );
      MyCollection myRWCol = new MyCollection();
      myRWCol.Add( "Q", "q" );
      PrintKeysAndValues( myRWCol );

      myRWCol["o"] = "g";
      PrintKeysAndValues( myRWCol );
      myRWCol.Remove( "b" );
      PrintKeysAndValues( myRWCol );
      myRWCol.Clear();
      PrintKeysAndValues( myRWCol );

   }
   public static void PrintKeysAndValues( MyCollection myCol )  {
      for ( int i = 0; i < myCol.Count; i++ )  {
         Console.WriteLine( "[{0}] : {1}, {2}", i, myCol[i].Key, myCol[i].Value );
      }
   }
   public static void PrintKeysAndValues2( MyCollection myCol )  {
      foreach ( String s in myCol.AllKeys )  {
         Console.WriteLine( "{0}, {1}", s, myCol[s] );
      }
   }
}

   
  








Related examples in the same category

1.NameObjectCollectionBase Demo
2.Adds an entry with the specified key and value into NameObjectCollectionBase
3.Removes all entries from NameObjectCollectionBase
4.Gets the value of the entry at the specified index of NameObjectCollectionBase
5.Returns a String array that contains all the keys in NameObjectCollectionBase
6.Whether NameObjectCollectionBase contains entries whose keys are not null.
7.Removes the entries with the specified key from NameObjectCollectionBase
8.Sets the value of the entry at the specified index of NameObjectCollectionBase
9.Whether NameObjectCollectionBase is read-only.
10.Represents a collection of associated String keys and String values