次の方法で共有


StringDictionary.CopyTo メソッド

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

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

構文

'宣言
Public Overridable Sub CopyTo ( _
    array As Array, _
    index As Integer _
)
'使用
Dim instance As StringDictionary
Dim array As Array
Dim index As Integer

instance.CopyTo(array, index)
public virtual void CopyTo (
    Array array,
    int index
)
public:
virtual void CopyTo (
    Array^ array, 
    int index
)
public void CopyTo (
    Array array, 
    int index
)
public function CopyTo (
    array : Array, 
    index : int
)

パラメータ

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

例外

例外の種類 条件

ArgumentException

array が多次元です。

または

StringDictionary の要素数が、index から array の末尾までに格納できる数を超えています。

ArgumentNullException

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

ArgumentOutOfRangeException

index が array の下限より小さい値です。

解説

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

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

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

使用例

StringDictionary を配列にコピーする方法については、次のコード例を参照してください。

Imports System
Imports System.Collections
Imports System.Collections.Specialized
Imports Microsoft.VisualBasic

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 'Main 

End Class 'SamplesStringDictionary


'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

*/
#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

*/
import System.* ;
import System.Collections.IEnumerator;
import System.Collections.DictionaryEntry;
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");
            
        // Displays the values in the StringDictionary.
        Console.WriteLine("KEYS\tVALUES in the StringDictionary");
        IEnumerator objEnum = myCol.GetEnumerator();
        while (objEnum.MoveNext()) { 
            DictionaryEntry myDE = (DictionaryEntry)objEnum.get_Current();
            Console.WriteLine("{0}\t{1}", myDE.get_Key(), myDE.get_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].get_Key(),
                myArr[i].get_Value());
        } 
        Console.WriteLine();
    } //main 
} //SamplesStringDictionary

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

*/

プラットフォーム

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 名前空間