This documentation is archived and is not being maintained.
NameObjectCollectionBase.BaseGetKey Method
.NET Framework 1.1
Gets the key of the entry at the specified index of the NameObjectCollectionBase instance.
[Visual Basic] Protected Function BaseGetKey( _ ByVal index As Integer _ ) As String [C#] protected string BaseGetKey( int index ); [C++] protected: String* BaseGetKey( int index ); [JScript] protected function BaseGetKey( index : int ) : String;
Parameters
- index
- The zero-based index of the key to get.
Return Value
A String that represents the key of the entry at the specified index.
Exceptions
| Exception Type | Condition |
|---|---|
| ArgumentOutOfRangeException | index is outside the valid range of indexes for the collection. |
Example
[Visual Basic, C#, C++] The following code example uses BaseGetKey and BaseGet to get specific keys and 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 ' Gets or sets the value associated with the specified key. Default Public Property Item(key As [String]) As [Object] Get Return Me.BaseGet(key) End Get Set Me.BaseSet(key, value) End Set 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 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) ' Gets specific keys and values. Console.WriteLine("The key at index 0 is {0}.", myCol(0).Key) Console.WriteLine("The value at index 0 is {0}.", myCol(0).Value) Console.WriteLine("The value associated with the key ""green"" is {0}.", myCol("green")) 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 key at index 0 is red. 'The value at index 0 is apple. 'The value associated with the key "green" is 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 ); } } // Gets or sets the value associated with the specified key. public Object this[ String key ] { get { return( this.BaseGet( key ) ); } set { this.BaseSet( key, value ); } } // 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 ); } } } 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 ); // Gets specific keys and values. Console.WriteLine( "The key at index 0 is {0}.", myCol[0].Key ); Console.WriteLine( "The value at index 0 is {0}.", myCol[0].Value ); Console.WriteLine( "The value associated with the key \"green\" is {0}.", myCol["green"] ); } 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 key at index 0 is red. The value at index 0 is apple. The value associated with the key "green" is 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; // Gets a key-and-value pair (DictionaryEntry) using an index. public: __property DictionaryEntry get_Item( int index ) { _de.Key = this->BaseGetKey(index); _de.Value = this->BaseGet(index); return(_de); } // Gets or sets the value associated with the specified key. __property Object* get_Item( String* key ) { return(this->BaseGet(key)); } __property void set_Item( String* key, Object* value ) { this->BaseSet(key, value); } // 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); } } }; void PrintKeysAndValues(MyCollection* myCol) { for (int i = 0; i < myCol->Count; i++) { Console::WriteLine(S"[{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); // Gets specific keys and values. Console::WriteLine(S"The key at index 0 is {0}.", myCol->Item[0].Key); Console::WriteLine(S"The value at index 0 is {0}.", myCol->Item[0].Value); Console::WriteLine(S"The value associated with the key \"green\" is {0}.", myCol->Item[S"green"]); } /* This code produces the following output. Initial state of the collection (Count = 3): [0] : red, apple [1] : yellow, banana [2] : green, pear The key at index 0 is red. The value at index 0 is apple. The value associated with the key S"green" is 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
Show: