次の方法で共有


StringDictionary.CopyTo(Array, Int32) メソッド

定義

1 次元の Array インスタンスの指定したインデックス位置に、文字列ディクショナリの値をコピーします。

public:
 virtual void CopyTo(Array ^ array, int index);
public virtual void CopyTo (Array array, int index);
abstract member CopyTo : Array * int -> unit
override this.CopyTo : Array * int -> unit
Public Overridable Sub CopyTo (array As Array, index As Integer)

パラメーター

array
Array

Array からコピーされる値のコピー先となる 1 次元 StringDictionary

index
Int32

配列内のコピー開始位置を示すインデックス。

例外

array が多次元です。

- または -

StringDictionary の要素の数が、arrayindex から最後までの空き領域を超えています。

arraynullです。

indexarray の下限を下回っています。

次のコード例は、StringDictionary を配列にコピーする方法を示しています。

#using <System.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
void main()
{
   
   // Creates and initializes a new StringDictionary.
   StringDictionary^ myCol = gcnew StringDictionary;
   myCol->Add( "red", "rojo" );
   myCol->Add( "green", "verde" );
   myCol->Add( "blue", "azul" );
   
   // Displays the values in the StringDictionary.
   Console::WriteLine( "KEYS\tVALUES in the StringDictionary" );
   IEnumerator^ myEnum = myCol->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DictionaryEntry^ myDE = safe_cast<DictionaryEntry^>(myEnum->Current);
      Console::WriteLine( "{0}\t{1}", myDE->Key, myDE->Value );
      Console::WriteLine();
      
      // Creates an array with DictionaryEntry elements.
      array<DictionaryEntry>^myArr = gcnew array<DictionaryEntry>(3);
      
      // Copies the StringDictionary to the array.
      myCol->CopyTo( myArr, 0 );
      
      // Displays the values in the array.
      Console::WriteLine( "KEYS\tVALUES in the array" );
      for ( int i = 0; i < myArr->Length; i++ )
         Console::WriteLine( "{0}\t{1}", myArr[ i ].Key, myArr[ i ].Value );
      Console::WriteLine();
   }
}

/*
This code produces the following output.

KEYS    VALUES in the StringDictionary
green   verde
red     rojo
blue    azul

KEYS    VALUES in the array
green   verde
red     rojo
blue    azul

*/
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" );

      // Displays the values in the StringDictionary.
      Console.WriteLine( "KEYS\tVALUES in the StringDictionary" );
      foreach ( DictionaryEntry myDE in myCol )
         Console.WriteLine( "{0}\t{1}", myDE.Key, myDE.Value );
      Console.WriteLine();

      // Creates an array with DictionaryEntry elements.
      DictionaryEntry[] myArr = { new DictionaryEntry(), new DictionaryEntry(), new DictionaryEntry() };

      // Copies the StringDictionary to the array.
      myCol.CopyTo( myArr, 0 );

      // Displays the values in the array.
      Console.WriteLine( "KEYS\tVALUES in the array" );
      for ( int i = 0; i < myArr.Length; i++ )
         Console.WriteLine( "{0}\t{1}", myArr[i].Key, myArr[i].Value );
      Console.WriteLine();
   }
}

/*
This code produces the following output.

KEYS    VALUES in the StringDictionary
green   verde
red     rojo
blue    azul

KEYS    VALUES in the array
green   verde
red     rojo
blue    azul

*/
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")

      ' Displays the values in the StringDictionary.
      Console.WriteLine("KEYS" + ControlChars.Tab + "VALUES in the StringDictionary")
      Dim myDE As DictionaryEntry
      For Each myDE In  myCol
         Console.WriteLine("{0}" + ControlChars.Tab + "{1}", myDE.Key, myDE.Value)
      Next myDE
      Console.WriteLine()

      ' Creates an array with DictionaryEntry elements.
      Dim myArr As DictionaryEntry() =  {New DictionaryEntry(), New DictionaryEntry(), New DictionaryEntry()}

      ' Copies the StringDictionary to the array.
      myCol.CopyTo(myArr, 0)

      ' Displays the values in the array.
      Console.WriteLine("KEYS" + ControlChars.Tab + "VALUES in the array")
      Dim i As Integer
      For i = 0 To myArr.Length - 1
         Console.WriteLine("{0}" + ControlChars.Tab + "{1}", myArr(i).Key, myArr(i).Value)
      Next i
      Console.WriteLine()

   End Sub

End Class


'This code produces the following output.
'
'KEYS    VALUES in the StringDictionary
'green   verde
'red     rojo
'blue    azul
'
'KEYS    VALUES in the array
'green   verde
'red     rojo
'blue    azul

注釈

CopyTo は、型キャストできるオブジェクトを に System.Collections.DictionaryEntryコピーします。 DictionaryEntry には、キーと値の両方が含まれています。

Array コピーされた要素は、列挙子が を反復処理 StringDictionaryするのと同じ順序で並べ替えられます。

このメソッドは O(n) 操作です。nCount です。

適用対象