HybridDictionary.Item Property
Assembly: System (in system.dll)
public: virtual property Object^ default [Object^] { Object^ get (Object^ key) sealed; void set (Object^ key, Object^ value) sealed; }
/** @property */ public final Object get_Item (Object key) /** @property */ public final void set_Item (Object key, Object value)
Not applicable.
Parameters
- key
The key whose value to get or set.
Property Value
The value associated with the specified key. If the specified key is not found, attempting to get it returns a null reference (Nothing in Visual Basic), and attempting to set it creates a new entry using the specified key.This property provides the ability to access a specific element in the collection by using the following syntax: myCollection[key].
You can also use the Item property to add new elements by setting the value of a key that does not exist in the HybridDictionary; for example, myCollection["myNonexistentKey"] = myValue. However, if the specified key already exists in the HybridDictionary, setting the Item property overwrites the old value. In contrast, the Add method does not modify existing elements.
A key cannot be a null reference (Nothing in Visual Basic), but a value can. To distinguish between a null reference (Nothing in Visual Basic) that is returned because the specified key is not found and a null reference (Nothing in Visual Basic) that is returned because the value of the specified key is a null reference (Nothing in Visual Basic), use the Contains method to determine if the key exists in the list.
The C# language uses the this keyword to define the indexers instead of implementing the Item property. Visual Basic implements Item as a default property, which provides the same indexing functionality.
Retrieving the value of this property is an O(1) operation; setting the property is also an O(1) operation.
The following code example enumerates the elements of a HybridDictionary.
#using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; void PrintKeysAndValues1( IDictionary^ myCol ); void PrintKeysAndValues2( IDictionary^ myCol ); void PrintKeysAndValues3( HybridDictionary^ myCol ); int main() { // Creates and initializes a new HybridDictionary. HybridDictionary^ myCol = gcnew 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" ); // Display the contents of the collection using for each. This is the preferred method. Console::WriteLine( "Displays the elements using for each:" ); PrintKeysAndValues1( myCol ); // Display the contents of the collection using the enumerator. Console::WriteLine( "Displays the elements using the IDictionaryEnumerator:" ); PrintKeysAndValues2( myCol ); // Display the contents of the collection using the Keys, Values, Count, and Item properties. Console::WriteLine( "Displays the elements using the Keys, Values, Count, and Item properties:" ); PrintKeysAndValues3( myCol ); } // Uses the foreach statement which hides the complexity of the enumerator. // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection. void PrintKeysAndValues1( IDictionary^ myCol ) { Console::WriteLine( " KEY VALUE" ); for each ( DictionaryEntry^ de in myCol ) Console::WriteLine( " {0,-25} {1}", de->Key, de->Value ); Console::WriteLine(); } // Uses the enumerator. void PrintKeysAndValues2( IDictionary^ myCol ) { IDictionaryEnumerator^ myEnumerator = myCol->GetEnumerator(); Console::WriteLine( " KEY VALUE" ); while ( myEnumerator->MoveNext() ) Console::WriteLine( " {0,-25} {1}", myEnumerator->Key, myEnumerator->Value ); Console::WriteLine(); } // Uses the Keys, Values, Count, and Item properties. void PrintKeysAndValues3( HybridDictionary^ myCol ) { array<String^>^myKeys = gcnew array<String^>(myCol->Count); myCol->Keys->CopyTo( myKeys, 0 ); Console::WriteLine( " INDEX KEY VALUE" ); for ( int i = 0; i < myCol->Count; i++ ) Console::WriteLine( " {0,-5} {1,-25} {2}", i, myKeys[ i ], myCol[ myKeys[ i ] ] ); Console::WriteLine(); } /* This code produces the following output. Displays the elements using for each: 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 Displays the elements using the IDictionaryEnumerator: 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 Displays the elements using the Keys, Values, Count, and Item properties: INDEX KEY VALUE 0 Seedless Watermelon 0.49 1 Nectarine 1.99 2 Cranberries 5.98 3 Plantain Bananas 1.49 4 Honeydew Melon 0.59 5 Pineapple 1.49 6 Strawberries 3.33 7 Grapes 1.99 8 Braeburn Apples 1.49 9 Peaches 1.99 10 Red Delicious Apples 0.99 11 Golden Delicious Apples 1.29 12 Yellow Bananas 0.79 13 Granny Smith Apples 0.89 14 Gala Apples 1.49 15 Plums 1.69 16 Navel Oranges 1.29 17 Fuji Apples 1.29 */
import System.*;
import System.Collections.*;
import System.Collections.Specialized.*;
public class SamplesHybridDictionary
{
public static void main(String[] args)
{
// 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");
// Display the contents of the collection using for. This is the
// preferred method.
Console.WriteLine("Displays the elements using for:");
PrintKeysAndValues1(myCol);
// Display the contents of the collection using the enumerator.
Console.WriteLine("Displays the elements using the"
+ " IDictionaryEnumerator:");
PrintKeysAndValues2(myCol);
// Display the contents of the collection using the Keys, Values,
// Count, and Item properties.
Console.WriteLine("Displays the elements using the Keys, Values,"
+ " Count, and Item properties:");
PrintKeysAndValues3(myCol);
} //main
// Uses the for statement which hides the complexity of the enumerator.
// NOTE: The for statement is the preferred way of enumerating the
// contents of a collection.
public static void PrintKeysAndValues1(IDictionary myCol)
{
String strKeys[] = new String[myCol.get_Count()];
myCol.get_Keys().CopyTo(strKeys,0);
for (int iCtr=0; iCtr < myCol.get_Count(); iCtr++) {
Console.WriteLine(" {0,-25} {1}", strKeys[iCtr],
myCol.get_Item(strKeys[iCtr]));
}
Console.WriteLine();
} //PrintKeysAndValues1
// Uses the enumerator.
// NOTE: The for statement is the preferred way of enumerating the
// contents of a collection.
public static void PrintKeysAndValues2(IDictionary myCol)
{
IDictionaryEnumerator myEnumerator = myCol.GetEnumerator();
Console.WriteLine(" KEY VALUE");
while(myEnumerator.MoveNext()) {
Console.WriteLine(" {0,-25} {1}", myEnumerator.get_Key(),
myEnumerator.get_Value());
}
Console.WriteLine();
} //PrintKeysAndValues2
// Uses the Keys, Values, Count, and Item properties.
public static void PrintKeysAndValues3(HybridDictionary myCol)
{
String myKeys[] = new String[myCol.get_Count()];
myCol.get_Keys().CopyTo(myKeys, 0);
Console.WriteLine(" INDEX KEY VALUE");
for(int i=0; i < myCol.get_Count(); i++) {
Console.WriteLine(" {0,-5} {1,-25} {2}", (Int32)i, myKeys[i],
myCol.get_Item(myKeys[i]));
}
Console.WriteLine();
} //PrintKeysAndValues3
} //SamplesHybridDictionary
/*
Displays the elements using for:
Strawberries 3.33
Yellow Bananas 0.79
Cranberries 5.98
Grapes 1.99
Granny Smith Apples 0.89
Seedless Watermelon 0.49
Honeydew Melon 0.59
Red Delicious Apples 0.99
Navel Oranges 1.29
Fuji Apples 1.29
Plantain Bananas 1.49
Gala Apples 1.49
Pineapple 1.49
Plums 1.69
Braeburn Apples 1.49
Peaches 1.99
Golden Delicious Apples 1.29
Nectarine 1.99
Displays the elements using the IDictionaryEnumerator:
KEY VALUE
Strawberries 3.33
Yellow Bananas 0.79
Cranberries 5.98
Grapes 1.99
Granny Smith Apples 0.89
Seedless Watermelon 0.49
Honeydew Melon 0.59
Red Delicious Apples 0.99
Navel Oranges 1.29
Fuji Apples 1.29
Plantain Bananas 1.49
Gala Apples 1.49
Pineapple 1.49
Plums 1.69
Braeburn Apples 1.49
Peaches 1.99
Golden Delicious Apples 1.29
Nectarine 1.99
Displays the elements using the Keys, Values, Count, and Item properties:
INDEX KEY VALUE
0 Strawberries 3.33
1 Yellow Bananas 0.79
2 Cranberries 5.98
3 Grapes 1.99
4 Granny Smith Apples 0.89
5 Seedless Watermelon 0.49
6 Honeydew Melon 0.59
7 Red Delicious Apples 0.99
8 Navel Oranges 1.29
9 Fuji Apples 1.29
10 Plantain Bananas 1.49
11 Gala Apples 1.49
12 Pineapple 1.49
13 Plums 1.69
14 Braeburn Apples 1.49
15 Peaches 1.99
16 Golden Delicious Apples 1.29
17 Nectarine 1.99
*/
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.