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へ切り替わるコレクションです。小規模なデータでも大規模なデータでも効率的に扱える点が特徴です。
-
JavaScriptのArray.entries()メソッドとは?使い方とサンプルコードを解説
Array.entries()メソッドとはJavaScript の Array.entries() メソッドは、配列内の各要素を「インデックス(キー)と値」のペアとして格納した、新しい Array Iterator オブジェクトを返します。このオブジェクトは反復可能(iterable)であるため、for...of ループやスプレッド構文などを使って、要素を一つずつ取り出すことができます。基本構文arr.entries()サンプルコード以下は、Array.entries() メソッドを使用して、配列の要素をキー/値ペアとして表示するコード例です。<!DOCTYPE html> <
-
Macのコマンドキーはどこにある?場所・見た目・Ctrlとの違いを徹底解説
チュートリアルに沿って作業しているときや、ちょっとした操作を行うとき、「Command(コマンド)キーを使ってください」と指示されることがあります。特にWindows用キーボードなどApple純正以外のキーボードを使っている場合、「コマンドキーってどのキー?どこにあるの?」と戸惑う方も多いはず。この記事では、コマンドキーの役割、場所、見た目、そしてPCキーボードでの対応キーまで、わかりやすく解説します。 コマンドキーとは何か? コマンドキー(Cmdキー、かつては「アップルキー」とも呼ばれました)は、Macのキーボードの中でも最も使用頻度の高い便利なキーのひとつです。 コマンドキーは、英字キーと