Returns a String array that contains all the keys in NameObjectCollectionBase
using System; using System.Collections; using System.Collections.Specialized; public class MyCollection : NameObjectCollectionBase { private DictionaryEntry _de = new DictionaryEntry(); public DictionaryEntry this[ int index ] { get { _de.Key = this.BaseGetKey( index ); _de.Value = this.BaseGet( index ); return( _de ); } } public MyCollection( IDictionary d ) { foreach ( DictionaryEntry de in d ) { this.BaseAdd( (String) de.Key, de.Value ); } } public String[] AllKeys { get { return( this.BaseGetAllKeys() ); } } public Array AllValues { get { return( this.BaseGetAllValues() ); } } public String[] AllStringValues { get { return( (String[]) this.BaseGetAllValues( typeof(System.String) ) ); } } } public class SamplesNameObjectCollectionBase { public static void Main() { IDictionary d = new ListDictionary(); d.Add( "A", "a" ); d.Add( "B", "b" ); d.Add( "C", "c" ); MyCollection myCol = new MyCollection( d ); Console.WriteLine( "Initial state of the collection (Count = {0}):", myCol.Count ); PrintKeysAndValues( myCol ); foreach ( String s in myCol.AllKeys ) { Console.WriteLine( " {0}", s ); } foreach ( Object o in myCol.AllValues ) { Console.WriteLine( " {0}", o.ToString() ); } foreach ( String s in myCol.AllValues ) { Console.WriteLine( " {0}", s ); } } 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 ); } } }