HybridDictionary.Item Property
Gets or sets the value associated with the specified key.
[C#] In C#, this property is the indexer for the HybridDictionary class.
[Visual Basic] Public Overridable Default Property Item( _ ByVal key As Object _ ) As Object Implements IDictionary.Item [C#] public virtual object this[ object key ] {get; set;} [C++] public: __property virtual Object* get_Item( Object* key ); public: __property virtual void set_Item( Object* key, Object* ); [JScript] returnValue = HybridDictionaryObject.Item(key); HybridDictionaryObject.Item(key) = returnValue; -or- returnValue = HybridDictionaryObject(key); HybridDictionaryObject(key) = returnValue;
[JScript] In JScript, you can use the default indexed properties defined by a type, but you cannot explicitly define your own. However, specifying the expando attribute on a class automatically provides a default indexed property whose type is Object and whose index type is String.
Arguments [JScript]
- key
- The key whose value to get or set.
Parameters [Visual Basic, C#, C++]
- 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.
Implements
Exceptions
| Exception Type | Condition |
|---|---|
| ArgumentNullException | key is a null reference (Nothing in Visual Basic). |
Remarks
This property provides the ability to access a specific element in the collection by using the following syntax: myCollection[key].
When setting this property, if the specified key already exists in the HybridDictionary, the value is replaced; otherwise, a new element is created. 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) that is returned because the specified key is not found and a null reference (Nothing) that is returned because the value of the specified key is a null reference (Nothing), use the Contains method to determine if the key exists in the list.
Example
[Visual Basic, C#, C++] The following code example enumerates the elements of a HybridDictionary.
[Visual Basic] Imports System 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("Displays the elements using for each:") PrintKeysAndValues(myCol) Console.WriteLine("Displays the elements using the IDictionaryEnumerator:") PrintKeysAndValues2(myCol) Console.WriteLine("Displays the elements using the Keys, Values, Count, and indexer properties:") PrintKeysAndValues3(myCol) End Sub 'Main 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 'PrintKeysAndValues Public Shared Sub PrintKeysAndValues2(myCol As IDictionary) Dim myEnumerator As IDictionaryEnumerator = myCol.GetEnumerator() Console.WriteLine(" KEY VALUE") While myEnumerator.MoveNext() Console.WriteLine(" {0,-25} {1}", myEnumerator.Key, myEnumerator.Value) End While Console.WriteLine() End Sub 'PrintKeysAndValues2 Public Shared Sub PrintKeysAndValues3(myCol As HybridDictionary) Dim myKeys(myCol.Count) As [String] myCol.Keys.CopyTo(myKeys, 0) Console.WriteLine(" INDEX KEY VALUE") Dim i As Integer For i = 0 To myCol.Count - 1 Console.WriteLine(" {0,-5} {1,-25} {2}", i, myKeys(i), myCol(myKeys(i))) Next i Console.WriteLine() End Sub 'PrintKeysAndValues3 End Class 'SamplesHybridDictionary '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 indexer 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 [C#] 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( "Displays the elements using foreach:" ); PrintKeysAndValues( myCol ); Console.WriteLine( "Displays the elements using the IDictionaryEnumerator:" ); PrintKeysAndValues2( myCol ); Console.WriteLine( "Displays the elements using the Keys, Values, Count, and indexer properties:" ); PrintKeysAndValues3( 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(); } public static 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(); } public static void PrintKeysAndValues3( HybridDictionary myCol ) { String[] myKeys = new 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 foreach: 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 indexer 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 */ [C++] #using <mscorlib.dll> #using <System.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; void PrintKeysAndValues( IDictionary* myCol ) { Console::WriteLine( S" KEY VALUE" ); IEnumerator* myEnum = myCol->GetEnumerator(); while (myEnum->MoveNext()) { DictionaryEntry de = *__try_cast<DictionaryEntry*>(myEnum->Current); Console::WriteLine( S" {0,-25} {1}", de.Key, de.Value ); } Console::WriteLine(); } void PrintKeysAndValues2( IDictionary* myCol ) { IDictionaryEnumerator* myEnumerator = myCol->GetEnumerator(); Console::WriteLine( S" KEY VALUE" ); while ( myEnumerator->MoveNext() ) Console::WriteLine( S" {0,-25} {1}", myEnumerator->Key, myEnumerator->Value ); Console::WriteLine(); } void PrintKeysAndValues3( HybridDictionary* myCol ) { String* myKeys[] = new String*[myCol->Count]; myCol->Keys->CopyTo( myKeys, 0 ); Console::WriteLine( S" INDEX KEY VALUE" ); for ( int i = 0; i < myCol->Count; i++ ) Console::WriteLine( S" {0,-5} {1,-25} {2}", __box(i), myKeys->Item[i], myCol->Item[myKeys[i]] ); Console::WriteLine(); } int main() { // Creates and initializes a new HybridDictionary. HybridDictionary* myCol = new HybridDictionary(); myCol->Add( S"Braeburn Apples", S"1.49" ); myCol->Add( S"Fuji Apples", S"1.29" ); myCol->Add( S"Gala Apples", S"1.49" ); myCol->Add( S"Golden Delicious Apples", S"1.29" ); myCol->Add( S"Granny Smith Apples", S"0.89" ); myCol->Add( S"Red Delicious Apples", S"0.99" ); myCol->Add( S"Plantain Bananas", S"1.49" ); myCol->Add( S"Yellow Bananas", S"0.79" ); myCol->Add( S"Strawberries", S"3.33" ); myCol->Add( S"Cranberries", S"5.98" ); myCol->Add( S"Navel Oranges", S"1.29" ); myCol->Add( S"Grapes", S"1.99" ); myCol->Add( S"Honeydew Melon", S"0.59" ); myCol->Add( S"Seedless Watermelon", S"0.49" ); myCol->Add( S"Pineapple", S"1.49" ); myCol->Add( S"Nectarine", S"1.99" ); myCol->Add( S"Plums", S"1.69" ); myCol->Add( S"Peaches", S"1.99" ); // Displays the values in the HybridDictionary in three different ways. Console::WriteLine( S"Displays the elements using foreach:" ); PrintKeysAndValues( myCol ); Console::WriteLine( S"Displays the elements using the IDictionaryEnumerator:" ); PrintKeysAndValues2( myCol ); Console::WriteLine( S"Displays the elements using the Keys, Values, Count, and indexer properties:" ); PrintKeysAndValues3( myCol ); } /* This code produces the following output. Displays the elements using foreach: 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 indexer 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 */
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
See Also
HybridDictionary Class | HybridDictionary Members | System.Collections.Specialized Namespace | Add | Performing Culture-Insensitive String Operations