C#
 Computer >> コンピューター >  >> プログラミング >> C#

HybridDictionaryのエントリをC#の配列インスタンスにコピーする方法

C#のHybridDictionaryクラスでは、CopyToメソッドを使うことで、コレクション内のすべてのエントリ(キーと値のペア)をDictionaryEntry型の1次元配列にコピーできます。CopyToメソッドは、第1引数にコピー先の配列、第2引数にコピーを開始する配列のインデックスを指定します。

以下のコードは、HybridDictionaryのエントリを配列インスタンスにコピーする方法を示しています。

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
   public static void Main(){
      HybridDictionary dict = new HybridDictionary();
      dict.Add("1", "SUV");
      dict.Add("2", "AUV");
      dict.Add("3", "Utility Vehicle");
      dict.Add("4", "MUV");
      dict.Add("5", "Compact Car");
      dict.Add("6", "Convertible");
      Console.WriteLine("HybridDictionary Key and Value pairs...");
      foreach(DictionaryEntry entry in dict){
         Console.WriteLine("{0} and {1} ", entry.Key, entry.Value);
      }
      DictionaryEntry[] dictArr = new DictionaryEntry[10];
      Console.WriteLine("\nCopied to Array Instance...");
      dict.CopyTo(dictArr, 2);
      for (int i = 0; i < dictArr.Length; i++)
         Console.WriteLine("Key = "+dictArr[i].Key + ", Value = " + dictArr[i].Value);
   }
}

出力

上記のコードを実行すると、次のような出力が得られます。

HybridDictionary Key and Value pairs...
1 and SUV
2 and AUV
3 and Utility Vehicle
4 and MUV
5 and Compact Car
6 and Convertible

Copied to Array Instance...
Key = , Value =
Key = , Value =
Key = 1, Value = SUV
Key = 2, Value = AUV
Key = 3, Value = Utility Vehicle
Key = 4, Value = MUV
Key = 5, Value = Compact Car
Key = 6, Value = Convertible
Key = , Value =
Key = , Value =

この例では、サイズ10の配列を宣言し、CopyToメソッドの第2引数に「2」を指定しています。そのため、エントリは配列のインデックス2以降にコピーされ、インデックス0と1には空のDictionaryEntryがそのまま残ります。

別の例

続いて、コピー開始インデックスを「0」に指定した別の例を見てみましょう。

using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo {
   public static void Main(){
      HybridDictionary dict = new HybridDictionary(10);
      dict.Add("1", "SUV");
      dict.Add("2", "AUV");
      dict.Add("3", "Utility Vehicle");
      dict.Add("4", "MUV");
      Console.WriteLine("HybridDictionary Key and Value pairs...");
      foreach(DictionaryEntry entry in dict){
         Console.WriteLine("{0} and {1} ", entry.Key, entry.Value);
      }
      DictionaryEntry[] dictArr = new DictionaryEntry[10];
      Console.WriteLine("\nCopied to Array Instance...");
      dict.CopyTo(dictArr, 0);
      for (int i = 0; i < dictArr.Length; i++)
         Console.WriteLine("Key = "+dictArr[i].Key + ", Value = " + dictArr[i].Value);
   }
}

出力

上記のコードを実行すると、次のような出力が得られます。

HybridDictionary Key and Value pairs...
1 and SUV
2 and AUV
3 and Utility Vehicle
4 and MUV

Copied to Array Instance...
Key = 1, Value = SUV
Key = 2, Value = AUV
Key = 3, Value = Utility Vehicle
Key = 4, Value = MUV
Key = , Value =
Key = , Value =
Key = , Value =
Key = , Value =
Key = , Value =
Key = , Value =

開始インデックスを0に指定した場合は、配列の先頭から順番にエントリがコピーされ、余った要素には空のDictionaryEntryが格納されます。なお、HybridDictionaryは要素数が少ないうちはListDictionaryとして動作し、要素が増えると自動的にHashtableへ切り替わるコレクションです。小規模なデータでも大規模なデータでも効率的に扱える点が特徴です。

  1. JavaScriptのArray.entries()メソッドとは?使い方とサンプルコードを解説

    Array.entries()メソッドとはJavaScript の Array.entries() メソッドは、配列内の各要素を「インデックス(キー)と値」のペアとして格納した、新しい Array Iterator オブジェクトを返します。このオブジェクトは反復可能(iterable)であるため、for...of ループやスプレッド構文などを使って、要素を一つずつ取り出すことができます。基本構文arr.entries()サンプルコード以下は、Array.entries() メソッドを使用して、配列の要素をキー/値ペアとして表示するコード例です。<!DOCTYPE html> <

  2. Macのコマンドキーはどこにある?場所・見た目・Ctrlとの違いを徹底解説

    チュートリアルに沿って作業しているときや、ちょっとした操作を行うとき、「Command(コマンド)キーを使ってください」と指示されることがあります。特にWindows用キーボードなどApple純正以外のキーボードを使っている場合、「コマンドキーってどのキー?どこにあるの?」と戸惑う方も多いはず。この記事では、コマンドキーの役割、場所、見た目、そしてPCキーボードでの対応キーまで、わかりやすく解説します。 コマンドキーとは何か? コマンドキー(Cmdキー、かつては「アップルキー」とも呼ばれました)は、Macのキーボードの中でも最も使用頻度の高い便利なキーのひとつです。 コマンドキーは、英字キーと