Export (0) Print
Expand All

ListDictionary.Item Property

Gets or sets the value associated with the specified key.

[C#] In C#, this property is the indexer for the ListDictionary 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 = ListDictionaryObject.Item(key);
ListDictionaryObject.Item(key) = returnValue;
-or-
returnValue = ListDictionaryObject(key);
ListDictionaryObject(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

IDictionary.Item

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 ListDictionary, 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.

This is an O(n) operation, where n is Count.

Example

[Visual Basic, C#, C++] The following code example enumerates the elements of a ListDictionary.

[Visual Basic] 
Imports System
Imports System.Collections
Imports System.Collections.Specialized

Public Class SamplesListDictionary   

   Public Shared Sub Main()

      ' Creates and initializes a new ListDictionary.
      Dim myCol As New ListDictionary()
      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")

      ' Displays the values in the ListDictionary 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 ListDictionary)
      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 'SamplesListDictionary 


'This code produces the following output.
'
'Displays the elements using for each:
'   KEY                       VALUE
'   Braeburn Apples           1.49
'   Fuji Apples               1.29
'   Gala Apples               1.49
'   Golden Delicious Apples   1.29
'   Granny Smith Apples       0.89
'   Red Delicious Apples      0.99
'
'Displays the elements using the IDictionaryEnumerator:
'   KEY                       VALUE
'   Braeburn Apples           1.49
'   Fuji Apples               1.29
'   Gala Apples               1.49
'   Golden Delicious Apples   1.29
'   Granny Smith Apples       0.89
'   Red Delicious Apples      0.99
'
'Displays the elements using the Keys, Values, Count, and indexer properties:
'   INDEX KEY                       VALUE
'   0     Braeburn Apples           1.49
'   1     Fuji Apples               1.29
'   2     Gala Apples               1.49
'   3     Golden Delicious Apples   1.29
'   4     Granny Smith Apples       0.89
'   5     Red Delicious Apples      0.99


[C#] 
using System;
using System.Collections;
using System.Collections.Specialized;

public class SamplesListDictionary  {

   public static void Main()  {

      // Creates and initializes a new ListDictionary.
      ListDictionary myCol = new ListDictionary();
      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" );

      // Displays the values in the ListDictionary 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( ListDictionary 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
   Braeburn Apples           1.49
   Fuji Apples               1.29
   Gala Apples               1.49
   Golden Delicious Apples   1.29
   Granny Smith Apples       0.89
   Red Delicious Apples      0.99

Displays the elements using the IDictionaryEnumerator:
   KEY                       VALUE
   Braeburn Apples           1.49
   Fuji Apples               1.29
   Gala Apples               1.49
   Golden Delicious Apples   1.29
   Granny Smith Apples       0.89
   Red Delicious Apples      0.99

Displays the elements using the Keys, Values, Count, and indexer properties:
   INDEX KEY                       VALUE
   0     Braeburn Apples           1.49
   1     Fuji Apples               1.29
   2     Gala Apples               1.49
   3     Golden Delicious Apples   1.29
   4     Granny Smith Apples       0.89
   5     Red Delicious Apples      0.99

*/


[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( ListDictionary* 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 ListDictionary.
    ListDictionary* myCol = new ListDictionary();
    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" );

    // Displays the values in the ListDictionary 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
   Braeburn Apples           1.49
   Fuji Apples               1.29
   Gala Apples               1.49
   Golden Delicious Apples   1.29
   Granny Smith Apples       0.89
   Red Delicious Apples      0.99

Displays the elements using the IDictionaryEnumerator:
   KEY                       VALUE
   Braeburn Apples           1.49
   Fuji Apples               1.29
   Gala Apples               1.49
   Golden Delicious Apples   1.29
   Granny Smith Apples       0.89
   Red Delicious Apples      0.99

Displays the elements using the Keys, Values, Count, and indexer properties:
   INDEX KEY                       VALUE
   0     Braeburn Apples           1.49
   1     Fuji Apples               1.29
   2     Gala Apples               1.49
   3     Golden Delicious Apples   1.29
   4     Granny Smith Apples       0.89
   5     Red Delicious Apples      0.99

*/

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter 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

ListDictionary Class | ListDictionary Members | System.Collections.Specialized Namespace | Add | Performing Culture-Insensitive String Operations

Show:
© 2014 Microsoft