C# のハッシュ テーブル コレクションには、キーと値のペアが格納されます。コレクション内の各要素または項目はキーと値のペアです。つまり、コレクションは 2 要素のコレクションです。キーは、ハッシュ テーブル内の要素にアクセスするために使用される一意の空ではないキーです。
ハッシュ テーブル コレクションは不変であり、重複した要素を持つことはできません。これは、キーと値の組み合わせが一意である必要があることを意味します。ただし、これらの値は空にすることも、繰り返すこともできます。 .Net Framework には、ハッシュ テーブル コレクションを実装するための HashTable クラスが用意されており、追加のコーディングなしでハッシュ テーブルを実装するために必要な機能が含まれています。
ハッシュ テーブル コレクション内の各要素は、key 要素と value 要素という 2 つのプロパティを持つ DictionaryEntry オブジェクトです。要素がハッシュ テーブルに追加されると、ハッシュ コードが自動的に生成されます。このハッシュ コードは内部にあり、隠されています。ハッシュ テーブル コレクション内の要素は、非表示のハッシュ コードによって順序付けされます。したがって、ハッシュ テーブルの要素はランダムに選択されたものとみなされます。
ハッシュ テーブル コレクションについて簡単に説明した後、2 つのハッシュ テーブル コレクションをマージする方法を見てみましょう。
Hashtable クラスは System によって提供されます。コレクション名前空間には、ハッシュ テーブル オブジェクトを構築し、要素の追加/削除、要素数のカウントなどの操作を実行するために使用できる基本クラス ライブラリのみが含まれています。 2 つのハッシュ テーブルを結合するために使用できるメソッド/関数は提供されていません。
2 つのハッシュ テーブルをマージする独自の方法を設計する必要があります。ハッシュ テーブルの容量またはサイズは、ハッシュ テーブルが保持する要素の数であることがわかっています。要素がハッシュ テーブルに挿入されると、再割り当てを通じてハッシュ テーブルのサイズが自動的に増加します。
したがって、2 つのハッシュ テーブルをマージするときは、一方のハッシュ テーブルの要素をもう一方のハッシュ テーブルに追加します。要素を追加すると、このハッシュ テーブルのサイズがそれに応じて調整されます。
###方法###リーリー
ここには、indianNumberSystem と langCodes という 2 つのハッシュ テーブルがあります。 ハッシュ テーブル indianNumberSystem には次のデータがあります。 110 | ######"十"###### |
「百」 | |
######"千"###### | ハッシュ テーブル langCodes には次のデータがあります。 |
C | 「シープラスプラス」 |
# ######"Cシャープ"######
「Java」 | |
「パール」 | |
出力 | 最後に、結合されたテーブルを表示します。
リーリー 生成された出力から、両方のテーブルが正しくマージされていることがわかります。 ######例### 次に、別の例、以下に示す C# プログラムについて考えてみましょう。 | リーリー
1######"1つ"###### |
出力ご覧のとおり、ハッシュ テーブル indianNumberSystem と NumberNames には共通のデータがあります。次に、このプログラムを実行して、マージがどのように行われるかを確認してみましょう。 | リーリー上記の出力からわかるように、NumberNames のデータ要素 (key=1) は indianNumberSystem ハッシュ テーブルに追加されません。重複が認められていないためです。 ###結論は### したがって、1 つのハッシュ テーブルのデータを別のハッシュ テーブル コレクションにコピーまたは追加することで、2 つのハッシュ テーブル コレクションをマージできます。両方のハッシュ テーブルに共通のキーが存在する場合、重複キーは追加されません。ただし、プログラマーは、ハッシュ テーブルにデータを追加するときに、誤ってデータを追加して予期しない結果が生じることを避けるために必ず確認する必要があります。 |
以上が2 つのハッシュ テーブル コレクションをマージする C# プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。