HybridDictionary.Add(Object, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したキーと値を持つエントリを HybridDictionaryに追加します。
public:
virtual void Add(System::Object ^ key, System::Object ^ value);
public void Add(object key, object value);
public void Add(object key, object? value);
abstract member Add : obj * obj -> unit
override this.Add : obj * obj -> unit
Public Sub Add (key As Object, value As Object)
パラメーター
- key
- Object
追加するエントリのキー。
- value
- Object
追加するエントリの値。 値は nullできます。
実装
例外
key は nullです。
同じキーを持つエントリが既に HybridDictionaryに存在します。
例
次のコード例では、 HybridDictionaryに要素を追加したり、要素を削除したりします。
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesHybridDictionary {
public static void Main() {
// Creates and initializes a new HybridDictionary.
HybridDictionary myCol = new HybridDictionary();
myCol.Add( "Braeburn Apples", "1.49" );
myCol.Add( "Fuji Apples", "1.29" );
myCol.Add( "Gala Apples", "1.49" );
myCol.Add( "Golden Delicious Apples", "1.29" );
myCol.Add( "Granny Smith Apples", "0.89" );
myCol.Add( "Red Delicious Apples", "0.99" );
myCol.Add( "Plantain Bananas", "1.49" );
myCol.Add( "Yellow Bananas", "0.79" );
myCol.Add( "Strawberries", "3.33" );
myCol.Add( "Cranberries", "5.98" );
myCol.Add( "Navel Oranges", "1.29" );
myCol.Add( "Grapes", "1.99" );
myCol.Add( "Honeydew Melon", "0.59" );
myCol.Add( "Seedless Watermelon", "0.49" );
myCol.Add( "Pineapple", "1.49" );
myCol.Add( "Nectarine", "1.99" );
myCol.Add( "Plums", "1.69" );
myCol.Add( "Peaches", "1.99" );
// Displays the values in the HybridDictionary in three different ways.
Console.WriteLine( "Initial contents of the HybridDictionary:" );
PrintKeysAndValues( myCol );
// Deletes a key.
myCol.Remove( "Plums" );
Console.WriteLine( "The collection contains the following elements after removing \"Plums\":" );
PrintKeysAndValues( myCol );
// Clears the entire collection.
myCol.Clear();
Console.WriteLine( "The collection contains the following elements after it is cleared:" );
PrintKeysAndValues( myCol );
}
public static void PrintKeysAndValues( IDictionary myCol ) {
Console.WriteLine( " KEY VALUE" );
foreach ( DictionaryEntry de in myCol )
Console.WriteLine( " {0,-25} {1}", de.Key, de.Value );
Console.WriteLine();
}
}
/*
This code produces output similar to the following:
Initial contents of the HybridDictionary:
KEY VALUE
Seedless Watermelon 0.49
Nectarine 1.99
Cranberries 5.98
Plantain Bananas 1.49
Honeydew Melon 0.59
Pineapple 1.49
Strawberries 3.33
Grapes 1.99
Braeburn Apples 1.49
Peaches 1.99
Red Delicious Apples 0.99
Golden Delicious Apples 1.29
Yellow Bananas 0.79
Granny Smith Apples 0.89
Gala Apples 1.49
Plums 1.69
Navel Oranges 1.29
Fuji Apples 1.29
The collection contains the following elements after removing "Plums":
KEY VALUE
Seedless Watermelon 0.49
Nectarine 1.99
Cranberries 5.98
Plantain Bananas 1.49
Honeydew Melon 0.59
Pineapple 1.49
Strawberries 3.33
Grapes 1.99
Braeburn Apples 1.49
Peaches 1.99
Red Delicious Apples 0.99
Golden Delicious Apples 1.29
Yellow Bananas 0.79
Granny Smith Apples 0.89
Gala Apples 1.49
Navel Oranges 1.29
Fuji Apples 1.29
The collection contains the following elements after it is cleared:
KEY VALUE
*/
Imports System.Collections
Imports System.Collections.Specialized
Public Class SamplesHybridDictionary
Public Shared Sub Main()
' Creates and initializes a new HybridDictionary.
Dim myCol As New HybridDictionary()
myCol.Add("Braeburn Apples", "1.49")
myCol.Add("Fuji Apples", "1.29")
myCol.Add("Gala Apples", "1.49")
myCol.Add("Golden Delicious Apples", "1.29")
myCol.Add("Granny Smith Apples", "0.89")
myCol.Add("Red Delicious Apples", "0.99")
myCol.Add("Plantain Bananas", "1.49")
myCol.Add("Yellow Bananas", "0.79")
myCol.Add("Strawberries", "3.33")
myCol.Add("Cranberries", "5.98")
myCol.Add("Navel Oranges", "1.29")
myCol.Add("Grapes", "1.99")
myCol.Add("Honeydew Melon", "0.59")
myCol.Add("Seedless Watermelon", "0.49")
myCol.Add("Pineapple", "1.49")
myCol.Add("Nectarine", "1.99")
myCol.Add("Plums", "1.69")
myCol.Add("Peaches", "1.99")
' Displays the values in the HybridDictionary in three different ways.
Console.WriteLine("Initial contents of the HybridDictionary:")
PrintKeysAndValues(myCol)
' Deletes a key.
myCol.Remove("Plums")
Console.WriteLine("The collection contains the following elements after removing ""Plums"":")
PrintKeysAndValues(myCol)
' Clears the entire collection.
myCol.Clear()
Console.WriteLine("The collection contains the following elements after it is cleared:")
PrintKeysAndValues(myCol)
End Sub
Public Shared Sub PrintKeysAndValues(myCol As IDictionary)
Console.WriteLine(" KEY VALUE")
Dim de As DictionaryEntry
For Each de In myCol
Console.WriteLine(" {0,-25} {1}", de.Key, de.Value)
Next de
Console.WriteLine()
End Sub
End Class
'This code produces output similar to the following:
'
'Initial contents of the HybridDictionary:
' KEY VALUE
' Seedless Watermelon 0.49
' Nectarine 1.99
' Cranberries 5.98
' Plantain Bananas 1.49
' Honeydew Melon 0.59
' Pineapple 1.49
' Strawberries 3.33
' Grapes 1.99
' Braeburn Apples 1.49
' Peaches 1.99
' Red Delicious Apples 0.99
' Golden Delicious Apples 1.29
' Yellow Bananas 0.79
' Granny Smith Apples 0.89
' Gala Apples 1.49
' Plums 1.69
' Navel Oranges 1.29
' Fuji Apples 1.29
'
'The collection contains the following elements after removing "Plums":
' KEY VALUE
' Seedless Watermelon 0.49
' Nectarine 1.99
' Cranberries 5.98
' Plantain Bananas 1.49
' Honeydew Melon 0.59
' Pineapple 1.49
' Strawberries 3.33
' Grapes 1.99
' Braeburn Apples 1.49
' Peaches 1.99
' Red Delicious Apples 0.99
' Golden Delicious Apples 1.29
' Yellow Bananas 0.79
' Granny Smith Apples 0.89
' Gala Apples 1.49
' Navel Oranges 1.29
' Fuji Apples 1.29
'
'The collection contains the following elements after it is cleared:
' KEY VALUE
'
注釈
状態とハッシュ コード値の間に相関関係がないオブジェクトは、通常、キーとして使用しないでください。 たとえば、String オブジェクトは、キーとして使用する StringBuilder オブジェクトよりも優れています。
キーを nullすることはできませんが、値は可能です。
Item[] プロパティを使用して、HybridDictionaryに存在しないキーの値 (myCollection["myNonexistentKey"] = myValueなど) を設定して、新しい要素を追加することもできます。 ただし、指定したキーが既に HybridDictionaryに存在する場合は、 Item[] プロパティを設定すると、古い値が上書きされます。 これに対し、 Add メソッドは既存の要素を変更しません。
要素の数が ListDictionaryに最適なサイズより大きくなると、要素は ListDictionary から Hashtableにコピーされます。 ただし、これは 1 回だけ発生します。 コレクションが既に Hashtable に格納されていて、要素の数が ListDictionaryに最適なサイズを下回る場合、コレクションは Hashtableに残ります。
このメソッドは O(1) 操作です。