NameObjectCollectionBase.BaseAdd(String, Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將指定鍵與值的條目加入實例。NameObjectCollectionBase
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)
參數
例外狀況
本合集為唯讀。
範例
以下程式碼範例用 BaseAdd 來建立 NameObjectCollectionBase 一個包含元素的 IDictionary。
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
備註
如果 Count 已經等於容量, NameObjectCollectionBase 則會自動重新配置內部陣列,並先複製現有元素到新陣列,然後再加入新元素。
若 Count 小於容量,此方法為 O(1) 操作。 若需增加容量以容納新元素,此方法將成為 O(n) 運算,其中 n 為 Count。