次の方法で共有


StringDictionary.Item プロパティ

指定したキーに関連付けられている値を取得または設定します。

名前空間: System.Collections.Specialized
アセンブリ: System (system.dll 内)

構文

'宣言
Public Overridable Default Property Item ( _
    key As String _
) As String
'使用
Dim instance As StringDictionary
Dim key As String
Dim value As String

value = instance(key)

instance(key) = value
public virtual string this [
    string key
] { get; set; }
public:
virtual property String^ default [String^] {
    String^ get (String^ key);
    void set (String^ key, String^ value);
}
/** @property */
public String get_Item (String key)

/** @property */
public void set_Item (String key, String value)
JScript では、インデックス付きのプロパティは使用できますが、新規に宣言することはできません。.

パラメータ

  • key
    値を取得または設定する対象のキー。

プロパティ値

指定したキーに関連付けられている値。指定したキーが見つからなかった場合は、Get は null 参照 (Visual Basic では Nothing) を返し、Set は指定したキーを持つ新しいエントリを作成します。

例外

例外の種類 条件

ArgumentNullException

key が null 参照 (Visual Basic では Nothing) です。

解説

キーは大文字と小文字を区別せずに処理されます。つまり、キーは使用される前に小文字に変換されます。

キーには null 参照 (Visual Basic では Nothing) は使用できませんが、値には使用できます。指定したキーが存在しないために返される null 参照 (Visual Basic では Nothing) と、指定したキーの値が null 参照 (Visual Basic では Nothing) であるために返される null 参照 (Visual Basic では Nothing) を区別するには、ContainsKey メソッドを使用して、キーがリストに存在するかどうかを確認します。

このプロパティ値を取得することは、O(1) 操作になります。また、このプロパティを設定することも O(1) 操作になります。

使用例

StringDictionary の要素を列挙するコード例を次に示します。

Imports System
Imports System.Collections
Imports System.Collections.Specialized

Public Class SamplesStringDictionary

   Public Shared Sub Main()

      ' Creates and initializes a new StringDictionary.
      Dim myCol As New StringDictionary()
      myCol.Add("red", "rojo")
      myCol.Add("green", "verde")
      myCol.Add("blue", "azul")

      ' 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 IEnumerator:")
      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)

   End Sub 'Main


   ' Uses the For Each statement which hides the complexity of the enumerator.
   ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection.
   Public Shared Sub PrintKeysAndValues1(myCol As StringDictionary)
      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 'PrintKeysAndValues1


   ' Uses the enumerator. 
   ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection.
   Public Shared Sub PrintKeysAndValues2(myCol As StringDictionary)
      Dim myEnumerator As IEnumerator = myCol.GetEnumerator()
      Dim de As DictionaryEntry
      Console.WriteLine("   KEY                       VALUE")
      While myEnumerator.MoveNext()
         de = CType(myEnumerator.Current, DictionaryEntry)
         Console.WriteLine("   {0,-25} {1}", de.Key, de.Value)
      End While
      Console.WriteLine()
   End Sub 'PrintKeysAndValues2


   ' Uses the Keys, Values, Count, and Item properties.
   Public Shared Sub PrintKeysAndValues3(myCol As StringDictionary)
      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 'SamplesStringDictionary 


'This code produces the following output.
'
'Displays the elements using For Each:
'   KEY                       VALUE
'   red                       rojo
'   blue                      azul
'   green                     verde
'
'Displays the elements using the IEnumerator:
'   KEY                       VALUE
'   red                       rojo
'   blue                      azul
'   green                     verde
'
'Displays the elements using the Keys, Values, Count, and Item properties:
'   INDEX KEY                       VALUE
'   0     red                       rojo
'   1     blue                      azul
'   2     green                     verde
using System;
using System.Collections;
using System.Collections.Specialized;

public class SamplesStringDictionary  {

   public static void Main()  {

      // Creates and initializes a new StringDictionary.
      StringDictionary myCol = new StringDictionary();
      myCol.Add( "red", "rojo" );
      myCol.Add( "green", "verde" );
      myCol.Add( "blue", "azul" );

      // Display the contents of the collection using foreach. This is the preferred method.
      Console.WriteLine( "Displays the elements using foreach:" );
      PrintKeysAndValues1( myCol );

      // Display the contents of the collection using the enumerator.
      Console.WriteLine( "Displays the elements using the IEnumerator:" );
      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.
   public static void PrintKeysAndValues1( StringDictionary myCol )  {
      Console.WriteLine( "   KEY                       VALUE" );
      foreach ( DictionaryEntry de in myCol )
         Console.WriteLine( "   {0,-25} {1}", de.Key, de.Value );
      Console.WriteLine();
   }

   // Uses the enumerator. 
   // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection.
   public static void PrintKeysAndValues2( StringDictionary myCol )  {
      IEnumerator myEnumerator = myCol.GetEnumerator();
      DictionaryEntry de;
      Console.WriteLine( "   KEY                       VALUE" );
      while ( myEnumerator.MoveNext() )  {
         de = (DictionaryEntry) myEnumerator.Current;
         Console.WriteLine( "   {0,-25} {1}", de.Key, de.Value );
      }
      Console.WriteLine();
   }

   // Uses the Keys, Values, Count, and Item properties.
   public static void PrintKeysAndValues3( StringDictionary 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
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the IEnumerator:
   KEY                       VALUE
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the Keys, Values, Count, and Item properties:
   INDEX KEY                       VALUE
   0     red                       rojo
   1     blue                      azul
   2     green                     verde

*/
#using <System.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;

void PrintKeysAndValues1( StringDictionary^ myCol );
void PrintKeysAndValues2( StringDictionary^ myCol );
void PrintKeysAndValues3( StringDictionary^ myCol );

int main()
{
   // Creates and initializes a new StringDictionary.
   StringDictionary^ myCol = gcnew StringDictionary;
   myCol->Add( "red", "rojo" );
   myCol->Add( "green", "verde" );
   myCol->Add( "blue", "azul" );
   
   // 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 IEnumerator:" );
   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 for each statement which hides the complexity of the enumerator.
// NOTE: The for each statement is the preferred way of enumerating the contents of a collection.
void PrintKeysAndValues1( StringDictionary^ 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( StringDictionary^ myCol )
{
   IEnumerator^ myEnumerator = myCol->GetEnumerator();
   DictionaryEntry^ de;
   Console::WriteLine( "   KEY                       VALUE" );
   while ( myEnumerator->MoveNext() )
   {
      de =  (DictionaryEntry^)(myEnumerator->Current);
      Console::WriteLine( "   {0,-25} {1}", de->Key, de->Value );
   }
   Console::WriteLine();
}

// Uses the Keys, Values, Count, and Item properties.
void PrintKeysAndValues3( StringDictionary^ 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
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the IEnumerator:
   KEY                       VALUE
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the Keys, Values, Count, and Item properties:
   INDEX KEY                       VALUE
   0     red                       rojo
   1     blue                      azul
   2     green                     verde

*/
import System.*;
import System.Collections.* ;
import System.Collections.Specialized.*;

public class SamplesStringDictionary
{
    public static void main(String[] args)
    {
        // Creates and initializes a new StringDictionary.
        StringDictionary myCol =  new StringDictionary();
        myCol.Add("red", "rojo");
        myCol.Add("green", "verde");
        myCol.Add("blue", "azul");
      
        // Display the contents of the collection using for loop. This is the 
        // preferred method.
        Console.WriteLine("Displays the elements using for loop:");
        PrintKeysAndValues1(myCol);
          
        // Display the contents of the collection using the enumerator.
        Console.WriteLine("Displays the elements using the IEnumerator:");
        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(StringDictionary myCol) 
    {
        String strValue;
        String strKeys[] = new String[myCol.get_Count()];
        myCol.get_Keys().CopyTo(strKeys, 0);
        
        Console.WriteLine("   KEY                       VALUE");
        for (int iCtr = 0; iCtr < myCol.get_Count(); iCtr++) {
            strValue = myCol.get_Item(strKeys[iCtr]);
            Console.WriteLine("   {0,-25} {1}", strKeys[iCtr], strValue);
        }
        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(StringDictionary myCol) 
    {
        IEnumerator myEnumerator = myCol.GetEnumerator();
        DictionaryEntry de;
        Console.WriteLine("   KEY                       VALUE");
        while(myEnumerator.MoveNext()) {
            de =(DictionaryEntry)(myEnumerator.get_Current());
            Console.WriteLine("   {0,-25} {1}", de.get_Key(), de.get_Value());
        }
        Console.WriteLine();
    } //PrintKeysAndValues2
              
    // Uses the Keys, Values, Count, and Item properties.
    public static void PrintKeysAndValues3(StringDictionary 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
} //SamplesStringDictionary

/*
Displays the elements using for loop:
   KEY                       VALUE
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the IEnumerator:
   KEY                       VALUE
   red                       rojo
   blue                      azul
   green                     verde

Displays the elements using the Keys, Values, Count, and Item properties:
   INDEX KEY                       VALUE
   0     red                       rojo
   1     blue                      azul
   2     green                     verde
*/

プラットフォーム

Windows 98, Windows 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

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0

参照

関連項目

StringDictionary クラス
StringDictionary メンバ
System.Collections.Specialized 名前空間

その他の技術情報

カルチャを認識しない文字列操作の実行