NameObjectCollectionBase.BaseAdd(String, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt einen Eintrag mit dem angegebenen Schlüssel und Wert der NameObjectCollectionBase-Instanz hinzu.
protected:
void BaseAdd(System::String ^ name, System::Object ^ value);
protected void BaseAdd (string name, object value);
protected void BaseAdd (string? name, object? value);
member this.BaseAdd : string * obj -> unit
Protected Sub BaseAdd (name As String, value As Object)
Parameter
Ausnahmen
Die Auflistung ist schreibgeschützt.
Beispiele
Im folgenden Codebeispiel wird verwendet BaseAdd , um eine neue NameObjectCollectionBase mit Elementen aus einem IDictionaryzu erstellen.
#using <system.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
public ref class MyCollection: public NameObjectCollectionBase
{
private:
DictionaryEntry _de;
public:
property DictionaryEntry Item [ int ]
{
// Gets a key-and-value pair (DictionaryEntry) using an index.
DictionaryEntry get( int index )
{
_de.Key = this->BaseGetKey( index );
_de.Value = this->BaseGet( index );
return (_de);
}
}
// Adds elements from an IDictionary* into the new collection.
MyCollection( IDictionary^ d )
{
IEnumerator^ myEnum = d->GetEnumerator();
while ( myEnum->MoveNext() )
{
DictionaryEntry^ de = safe_cast<DictionaryEntry^>(myEnum->Current);
this->BaseAdd( safe_cast<String^>(de->Key), de->Value );
}
}
};
int 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 );
// Displays the keys and values of the MyCollection instance.
for ( int i = 0; i < myCol->Count; i++ )
{
Console::WriteLine( "[{0}] : {1}, {2}", i, myCol->Item[ i ].Key, myCol->Item[ i ].Value );
}
}
/*
This code produces the following output.
[0] : red, apple
[1] : yellow, banana
[2] : green, 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 );
}
}
// 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 );
// Displays the keys and values of the MyCollection instance.
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.
[0] : red, apple
[1] : yellow, banana
[2] : green, pear
*/
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
End Class
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)
' Displays the keys and values of the MyCollection instance.
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
End Class
'This code produces the following output.
'
'[0] : red, apple
'[1] : yellow, banana
'[2] : green, pear
Hinweise
Wenn Count bereits der Kapazität entspricht, wird die Kapazität von NameObjectCollectionBase erhöht, indem das interne Array automatisch neu zugeordnet wird, und die vorhandenen Elemente werden in das neue Array kopiert, bevor das neue Element hinzugefügt wird.
Wenn Count kleiner als die Kapazität ist, handelt es sich bei dieser Methode um einen O(1)-Vorgang. Wenn die Kapazität erhöht werden muss, um das neue Element aufzunehmen, wird diese Methode zu einem O(n
)-Vorgang, wobei n
ist Count.