NameObjectCollectionBase.BaseGetKey-Methode
Ruft den Schlüssel des Eintrags am angegebenen Index der NameObjectCollectionBase-Instanz ab.
Namespace: System.Collections.Specialized
Assembly: System (in system.dll)
Syntax
'Declaration
Protected Function BaseGetKey ( _
index As Integer _
) As String
'Usage
Dim index As Integer
Dim returnValue As String
returnValue = Me.BaseGetKey(index)
protected string BaseGetKey (
int index
)
protected:
String^ BaseGetKey (
int index
)
protected String BaseGetKey (
int index
)
protected function BaseGetKey (
index : int
) : String
Parameter
- index
Der nullbasierte Index des abzurufenden Schlüssels.
Rückgabewert
Ein String, der den Schlüssel des Eintrags am angegebenen Index darstellt.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
index liegt außerhalb des für die Auflistung gültigen Indexbereiches. |
Hinweise
Diese Methode ist eine O(1)-Operation.
Beispiel
Im folgenden Codebeispiel werden BaseGetKey und BaseGet zum Abrufen bestimmter Schlüssel und Werte verwendet.
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.
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.
*/
#using <System.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
public ref class MyCollection : public NameObjectCollectionBase {
private:
DictionaryEntry^ _de;
// Gets a key-and-value pair (DictionaryEntry) using an index.
public:
property DictionaryEntry^ default[ int ] {
DictionaryEntry^ get( 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^ default[ String^ ] {
Object^ get(String^ key) {
return( this->BaseGet( key ) );
}
void set( String^ key, Object^ value ) {
this->BaseSet( key, value );
}
}
// Adds elements from an IDictionary into the new collection.
MyCollection( IDictionary^ d ) {
_de = gcnew DictionaryEntry();
for each ( DictionaryEntry^ de in d ) {
this->BaseAdd( (String^) de->Key, de->Value );
}
}
};
public ref class SamplesNameObjectCollectionBase {
public:
static void Main() {
// Creates and initializes a new MyCollection instance.
IDictionary^ d = gcnew ListDictionary();
d->Add( "red", "apple" );
d->Add( "yellow", "banana" );
d->Add( "green", "pear" );
MyCollection^ myCol = gcnew 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"] );
}
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 );
}
}
};
int main()
{
SamplesNameObjectCollectionBase::Main();
}
/*
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.
*/
import System.* ;
import System.Collections.* ;
import System.Collections.Specialized.* ;
public class MyCollection extends NameObjectCollectionBase
{
private DictionaryEntry _de = new DictionaryEntry();
// Gets a key-and-value pair (DictionaryEntry) using an index.
/** @property
*/
public DictionaryEntry get_Item(int index)
{
_de.set_Key(this.BaseGetKey(index));
_de.set_Value(this.BaseGet(index));
return _de ;
} //get_Item
// Gets or sets the value associated with the specified key.
/** @property
*/
public Object get_Item(String key)
{
return this.BaseGet(key) ;
} //get_Item
/** @property
*/
public void set_Item(String key,Object value )
{
this.BaseSet(key, value);
} //set_Item
//default constructor
public MyCollection()
{
} //MyCollection
// Adds elements from an IDictionary into the new collection.
public MyCollection(IDictionary d)
{
IDictionaryEnumerator objEnum = d.GetEnumerator();
while(objEnum.MoveNext()) {
DictionaryEntry de = (DictionaryEntry)objEnum.get_Current();
this.BaseAdd(((String)(de.get_Key())), de.get_Value());
}
} //MyCollection
} //MyCollection
public class SamplesNameObjectCollectionBase
{
public static void main(String[] args)
{
// 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}):",
System.Convert.ToString(myCol.get_Count()));
PrintKeysAndValues(myCol);
// Gets specific keys and values.
Console.WriteLine("The key at index 0 is {0}.",
myCol.get_Item( 0).get_Key());
Console.WriteLine("The value at index 0 is {0}.",
myCol.get_Item( 0).get_Value());
Console.WriteLine("The value associated with the key \"green\" is {0}.",
myCol.get_Item( "green"));
} //main
public static void PrintKeysAndValues(MyCollection myCol)
{
for (int i=0 ; i < myCol.get_Count(); i++) {
Console.WriteLine("[{0}] : {1}, {2}", System.Convert.ToString(i),
myCol.get_Item(i).get_Key(), myCol.get_Item(i).get_Value());
}
} //PrintKeysAndValues
} //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.
*/
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
NameObjectCollectionBase-Klasse
NameObjectCollectionBase-Member
System.Collections.Specialized-Namespace