NameObjectCollectionBase.BaseGetAllKeys Method
Returns a String array that contains all the keys in the NameObjectCollectionBase instance.
[Visual Basic] Protected Function BaseGetAllKeys() As String() [C#] protected string[] BaseGetAllKeys(); [C++] protected: String* BaseGetAllKeys() __gc[]; [JScript] protected function BaseGetAllKeys() : String[];
Return Value
A String array that contains all the keys in the NameObjectCollectionBase instance.
Example
[Visual Basic, C#, C++] The following code example uses BaseGetAllKeys and BaseGetAllValues to get an array of the keys or an array of the values.
[Visual Basic] Imports System Imports System.Collections Imports System.Collections.Specialized Public Class MyCollection Inherits NameObjectCollectionBase Private _de As New DictionaryEntry() ' Gets a key-and-value pair (DictionaryEntry) using an index. Default Public ReadOnly Property Item(index As Integer) As DictionaryEntry Get _de.Key = Me.BaseGetKey(index) _de.Value = Me.BaseGet(index) Return _de End Get End Property ' Adds elements from an IDictionary into the new collection. Public Sub New(d As IDictionary) Dim de As DictionaryEntry For Each de In d Me.BaseAdd(CType(de.Key, [String]), de.Value) Next de End Sub 'New ' Gets a String array that contains all the keys in the collection. Public ReadOnly Property AllKeys() As [String]() Get Return Me.BaseGetAllKeys() End Get End Property ' Gets an Object array that contains all the values in the collection. Public ReadOnly Property AllValues() As Array Get Return Me.BaseGetAllValues() End Get End Property ' Gets a String array that contains all the values in the collection. Public ReadOnly Property AllStringValues() As [String]() Get Return CType(Me.BaseGetAllValues(Type.GetType("System.String")), [String]()) End Get End Property End Class 'MyCollection Public Class SamplesNameObjectCollectionBase Public Shared Sub Main() ' Creates and initializes a new MyCollection instance. Dim d = New ListDictionary() d.Add("red", "apple") d.Add("yellow", "banana") d.Add("green", "pear") Dim myCol As New MyCollection(d) Console.WriteLine("Initial state of the collection (Count = {0}):", myCol.Count) PrintKeysAndValues(myCol) ' Displays the list of keys. Console.WriteLine("The list of keys:") Dim s As [String] For Each s In myCol.AllKeys Console.WriteLine(" {0}", s) Next s ' Displays the list of values of type Object. Console.WriteLine("The list of values (Object):") Dim o As [Object] For Each o In myCol.AllValues Console.WriteLine(" {0}", o.ToString()) Next o ' Displays the list of values of type String. Console.WriteLine("The list of values (String):") For Each s In myCol.AllValues Console.WriteLine(" {0}", s) Next s End Sub 'Main Public Shared Sub PrintKeysAndValues(myCol As MyCollection) Dim i As Integer For i = 0 To myCol.Count - 1 Console.WriteLine("[{0}] : {1}, {2}", i, myCol(i).Key, myCol(i).Value) Next i End Sub 'PrintKeysAndValues End Class 'SamplesNameObjectCollectionBase 'This code produces the following output. ' 'Initial state of the collection (Count = 3): '[0] : red, apple '[1] : yellow, banana '[2] : green, pear 'The list of keys: ' red ' yellow ' green 'The list of values (Object): ' apple ' banana ' pear 'The list of values (String): ' apple ' banana ' pear [C#] using System; using System.Collections; using System.Collections.Specialized; public class MyCollection : NameObjectCollectionBase { private DictionaryEntry _de = new DictionaryEntry(); // Gets a key-and-value pair (DictionaryEntry) using an index. public DictionaryEntry this[ int index ] { get { _de.Key = this.BaseGetKey( index ); _de.Value = this.BaseGet( index ); return( _de ); } } // Adds elements from an IDictionary into the new collection. public MyCollection( IDictionary d ) { foreach ( DictionaryEntry de in d ) { this.BaseAdd( (String) de.Key, de.Value ); } } // Gets a String array that contains all the keys in the collection. public String[] AllKeys { get { return( this.BaseGetAllKeys() ); } } // Gets an Object array that contains all the values in the collection. public Array AllValues { get { return( this.BaseGetAllValues() ); } } // Gets a String array that contains all the values in the collection. public String[] AllStringValues { get { return( (String[]) this.BaseGetAllValues( Type.GetType( "System.String" ) ) ); } } } public class SamplesNameObjectCollectionBase { public static void Main() { // Creates and initializes a new MyCollection instance. IDictionary d = new ListDictionary(); d.Add( "red", "apple" ); d.Add( "yellow", "banana" ); d.Add( "green", "pear" ); MyCollection myCol = new MyCollection( d ); Console.WriteLine( "Initial state of the collection (Count = {0}):", myCol.Count ); PrintKeysAndValues( myCol ); // Displays the list of keys. Console.WriteLine( "The list of keys:" ); foreach ( String s in myCol.AllKeys ) { Console.WriteLine( " {0}", s ); } // Displays the list of values of type Object. Console.WriteLine( "The list of values (Object):" ); foreach ( Object o in myCol.AllValues ) { Console.WriteLine( " {0}", o.ToString() ); } // Displays the list of values of type String. Console.WriteLine( "The list of values (String):" ); 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 ); } } } /* This code produces the following output. Initial state of the collection (Count = 3): [0] : red, apple [1] : yellow, banana [2] : green, pear The list of keys: red yellow green The list of values (Object): apple banana pear The list of values (String): apple banana pear */ [C++] #using <mscorlib.dll> #using <system.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; public __gc class MyCollection : public NameObjectCollectionBase { private: DictionaryEntry _de; public: // Gets a key-and-value pair (DictionaryEntry) using an index. __property DictionaryEntry get_Item( int index ) { _de.Key = this->BaseGetKey(index); _de.Value = this->BaseGet(index); return(_de); } public: // Adds elements from an IDictionary* into the new collection. MyCollection(IDictionary* d) { IEnumerator* myEnum = d->GetEnumerator(); while (myEnum->MoveNext()) { DictionaryEntry* de = __try_cast<DictionaryEntry*>(myEnum->Current); this->BaseAdd(__try_cast<String*>(de->Key), de->Value); } } // Gets a String array that contains all the keys in the collection. __property String* get_AllKeys()[] { return(this->BaseGetAllKeys()); } // Gets an Object array that contains all the values in the collection. __property Object* get_AllValues()[] { return(this->BaseGetAllValues()); } // Gets a String array that contains all the values in the collection. __property String* get_AllStringValues()[] { return((String*[]) this->BaseGetAllValues(Type::GetType(S"System::String"))); } }; void PrintKeysAndValues(MyCollection* myCol) { for (int i = 0; i < myCol->Count; i++) { Console::WriteLine(S"->Item[ {0}] : {1}, {2}", __box(i), myCol->Item[i].Key, myCol->Item[i].Value); } } int main() { // Creates and initializes a new MyCollection instance. IDictionary* d = new ListDictionary(); d->Add(S"red", S"apple"); d->Add(S"yellow", S"banana"); d->Add(S"green", S"pear"); MyCollection* myCol = new MyCollection(d); Console::WriteLine(S"Initial state of the collection (Count = {0}):", __box(myCol->Count)); PrintKeysAndValues(myCol); // Displays the list of keys. Console::WriteLine(S"The list of keys:"); IEnumerator* myEnum1 = myCol->AllKeys->GetEnumerator(); while (myEnum1->MoveNext()) { String* s = __try_cast<String*>(myEnum1->Current); Console::WriteLine(S" {0}", s); } // Displays the list of values of type Object. Console::WriteLine(S"The list of values (Object):"); IEnumerator* myEnum2 = myCol->AllValues->GetEnumerator(); while (myEnum2->MoveNext()) { Object* o = __try_cast<Object*>(myEnum2->Current); Console::WriteLine(S" {0}", o); } // Displays the list of values of type String. Console::WriteLine(S"The list of values (String):"); IEnumerator* myEnum3 = myCol->AllValues->GetEnumerator(); while (myEnum3->MoveNext()) { String* s = __try_cast<String*>(myEnum3->Current); Console::WriteLine(S" {0}", s); } } /* This code produces the following output. Initial state of the collection (Count = 3): [0] : red, apple [1] : yellow, banana [2] : green, pear The list of keys: red yellow green The list of values (Object): apple banana pear The list of values (String): apple banana pear */
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
See Also
NameObjectCollectionBase Class | NameObjectCollectionBase Members | System.Collections.Specialized Namespace