英語で読む

次の方法で共有


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

定義

1 次元の Hashtable インスタンスの指定したインデックスに Array の要素をコピーします。

C#
public virtual void CopyTo (Array array, int arrayIndex);

パラメーター

array
Array

Array から DictionaryEntry オブジェクトがコピーされる 1 次元の HashtableArray には、0 から始まるインデックス番号が必要です。

arrayIndex
Int32

コピーの開始位置とする array のインデックス (0 から始まる)。

実装

例外

arraynullです。

arrayIndex が 0 未満です。

array が多次元です。

または

コピー元の Hashtable の要素数が、コピー先 arrayarrayIndex から最後までの使用可能領域を超えています。

コピー元の Hashtable の型をコピー先の array の型に自動的にキャストすることはできません。

次の例は、 内のキーのリストまたは値 Hashtable のリストを 1 次元 Arrayにコピーする方法を示しています。

C#
using System;
using System.Collections;
public class SamplesHashtable
{

   public static void Main()
   {
      // Creates and initializes the source Hashtable.
      var mySourceHT = new Hashtable();
      mySourceHT.Add("A", "valueA");
      mySourceHT.Add("B", "valueB");

      // Creates and initializes the one-dimensional target Array.
      var myTargetArray = new String[15];
      myTargetArray[0] = "The";
      myTargetArray[1] = "quick";
      myTargetArray[2] = "brown";
      myTargetArray[3] = "fox";
      myTargetArray[4] = "jumps";
      myTargetArray[5] = "over";
      myTargetArray[6] = "the";
      myTargetArray[7] = "lazy";
      myTargetArray[8] = "dog";

      // Displays the values of the target Array.
      Console.WriteLine("The target Array contains the following before:");
      PrintValues(myTargetArray, ' ');

      // Copies the keys in the source Hashtable to the target Hashtable, starting at index 6.
      Console.WriteLine("After copying the keys, starting at index 6:");
      mySourceHT.Keys.CopyTo(myTargetArray, 6);

      // Displays the values of the target Array.
      PrintValues(myTargetArray, ' ');

      // Copies the values in the source Hashtable to the target Hashtable, starting at index 6.
      Console.WriteLine("After copying the values, starting at index 6:");
      mySourceHT.Values.CopyTo(myTargetArray, 6);

      // Displays the values of the target Array.
      PrintValues(myTargetArray, ' ');
   }

   public static void PrintValues(String[] myArr, char mySeparator)
   {
      for (int i = 0; i < myArr.Length; i++)
         Console.Write($"{mySeparator}{myArr[i]}");
      Console.WriteLine();
   }
}
/*
This code produces the following output.

The target Array contains the following before:
 The quick brown fox jumps over the lazy dog
After copying the keys, starting at index 6:
 The quick brown fox jumps over B A dog
After copying the values, starting at index 6:
 The quick brown fox jumps over valueB valueA dog

*/

注釈

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

内のキーのみをコピーするには、 を Hashtable使用します Hashtable.Keys.CopyTo

内の値のみをコピーするには、 Hashtableを使用します Hashtable.Values.CopyTo

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

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

こちらもご覧ください