現在オフラインです。再接続するためにインターネットの接続を待っています

HashTable コレクションの Visual C# を使用する方法

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:309357
マイクロソフトの Visual Basic では。この資料のバージョンを NET を参照してください。 307933.
概要
この資料では、HashTable コレクションを使用する方法を示しています。ハッシュ、データの取得はコストがかかるデータ検索が不要になるため、ハッシュを効率よくデータを取得するために使用ができます。ハッシュ キー自体の値を使用してデータを検索します。

基本クラス ライブラリを提供します。 ハッシュ テーブル クラスで定義されている、 System.Collections 名前空間ハッシュ テーブルは、独自のコードを記述する必要はありませんようにします。

サンプルをビルドする手順

ハッシュ テーブルのコレクションを格納します。 (キー、値) ペアと使用を キー ハッシュし、格納場所を取得します。は、 キー 変更不可で、エントリが重複することはできません、 ハッシュ テーブル.このサンプルの簡単ないくつかのインスタンスを使用してください。 格納するクラスは、 ハッシュ テーブル.最後の名前として使用されます、 キー.
  1. Microsoft Visual Studio を開き Visual C# では、Windows フォーム アプリケーション プロジェクトを作成します。既定では、プロジェクトに Form1 が追加されます。
  2. ソリューション エクスプ ローラーでプロジェクト名を右クリックし、ポイント 追加、し クラス クラス モジュールを追加します。Class1 をプロジェクトに既定で追加されます。
  3. Class1 モジュール内のコードを次のコードで置き換えます。
     public class Person{	public string Fname, Lname;	public Person(string FirstName, string LastName)	{		Fname = FirstName;		Lname = LastName;	}	public override string ToString()	{		return Fname + " " + Lname;	}}						
    は、 クラスが使用する 1 つのコンス トラクターは、 氏名[氏名] パラメーターしこれらのパラメーターをローカル変数に割り当てられます。は、 ToString 関数のオーバーライド ToString から、 オブジェクト 取得するクラス FnameLname 互いに連結します。
  4. フォーム レベルを作成します。 ハッシュ テーブル オブジェクト、および種類の 3 つの変数を宣言します。 .次のコードを Form1 クラスに追加します。
    <?xm-deletion_mark author="v-bobbid" time="20080711T172143-0800" data="private Hashtable MyTable = new Hashtable();		//For simplicity, create three Person objects to add to the HashTable collection.Person Person1,Person2,Person3; "?><?xm-insertion_mark_start author="v-bobbid" time="20080711T172143-0800"?>System.Collections.Hashtable MyTable = new System.Collections.Hashtable();//For simplicity, create three Person objects to add to the HashTable collection.Person Person1,Person2,Person3; <?xm-insertion_mark_end?>					
  5. 次の手順を使用して、 追加 メソッドは、 ハッシュ テーブル オブジェクトを 3 つ追加するのには オブジェクトを ハッシュ テーブル で、 try と catch ブロックです。は、 try と catch ブロックは、例外をキャッチし、重複キーが存在する場合、メッセージが表示されます。
    1. 場所は、 ボタン Form1 上のコントロール、変更、 テキスト プロパティ 項目を追加します。.
    2. コード ウィンドウを開くには、ボタンをダブルクリックし、次のコードを貼り付けます、 Button1_Click イベント:
      Person1 = new Person("David", "Burris");Person2 = new Person("Johnny", "Carrol");Person3 = new Person("Ji", "Jihuang");//The Add method takes Key as the first parameter and Value as the second parameter.try{        MyTable.Add(Person1.Lname, Person1);	MyTable.Add(Person2.Lname, Person2);	MyTable.Add(Person3.Lname, Person3);				}catch (ArgumentException ae){	MessageBox.Show("Duplicate Key");	MessageBox.Show(ae.Message);}						
  6. は、 ハッシュ テーブル オブジェクトのインデクサーを提供します。次の手順では、インデックスを作成、 キー ハッシュされた場所に格納されている値にアクセスするには。
    1. 追加します。 ボタン Form1 に、制御し、変更を 名前 プロパティ 項目を取得します。.
    2. ボタンをダブルクリックし、次のコードを貼り付けます、 Button2_Click イベント:
      //Use the indexer of the Hashtable class to retrieve your objects. The indexer takes //Key as a parameter and accesses it with the Hashed location.try{        MessageBox.Show(MyTable[Person1.Lname].ToString());	MessageBox.Show(MyTable[Person2.Lname].ToString());	MessageBox.Show(MyTable[Person3.Lname].ToString());}catch (NullReferenceException ex){	MessageBox.Show("Key not in Hashtable");	MessageBox.Show(ex.Message);} 						
  7. 次の手順を使用して、 削除 HashTable コレクションから単一の項目を削除する方法:
    1. 追加します。 ボタン Form1 に、制御し、変更を テキスト プロパティ 項目を削除します。.
    2. ボタンをダブルクリックし、次のコードを貼り付けます、 Button3_Click イベント:
      <?xm-deletion_mark author="v-bobbid" time="20080711T173011-0800" data="if (MyTable.Count == 0) {	MessageBox.Show(&quot;There are no items in HashTable&quot;);}else{        MessageBox.Show(&quot;The count before removing an Item is&quot; + &quot; &quot; + MyTable.Count);        MessageBox.Show(&quot;Removing value stored at key value (Burris)&quot;);        Remove the object that is stored at the Key value Person1.Lname.        MyTable.Remove(Person1.Lname);}"?><?xm-insertion_mark_start author="v-bobbid" time="20080711T173011-0800"?>if (MyTable.Count == 0) {    MessageBox.Show("There are no items in HashTable");}else{        MessageBox.Show("The count before removing an Item is" + " " + MyTable.Count);        MessageBox.Show("Removing value stored at key value (Burris)");        // Remove the object that is stored at the Key value Person1.Lname.        MyTable.Remove(Person1.Lname);} <?xm-insertion_mark_end?>						
  8. 次の手順では、HashTable コレクション内に格納されているアイテムを列挙します。
    1. 追加します。 ボタン Form1 に、制御し、変更を テキスト プロパティ 列挙.
    2. ボタンをダブルクリックし、次のコードを貼り付けます、 Button4_Click イベント:
      <?xm-deletion_mark author="v-bobbid" time="20080711T174252-0800" data="IDictionaryEnumerator Enumerator;if (MyTable.Count == 0)	MessageBox.Show(&quot;The hashtable is empty&quot;);else{	MessageBox.Show(&quot;Enumerating through the Hashtable collection&quot;);	Enumerator = MyTable.GetEnumerator();                while (Enumerator.MoveNext())	{	        MessageBox.Show(Enumerator.Value.ToString());	}}ICollection MyKeys;     if (MyTable.Count == 0)        MessageBox.Show(&quot;The hashtable is empty&quot;);else{       MessageBox.Show(&quot;Accessing keys property to return keys collection&quot;);       MyKeys = MyTable.Keys;       foreach (object Key in MyKeys)       {		MessageBox.Show(Key.ToString());       }								   } 							"?><?xm-insertion_mark_start author="v-bobbid" time="20080711T174252-0800"?>System.Collections.IDictionaryEnumerator Enumerator;if (MyTable.Count == 0)    MessageBox.Show("The hashtable is empty");else{    MessageBox.Show("Enumerating through the Hashtable collection");    Enumerator = MyTable.GetEnumerator();    while (Enumerator.MoveNext())    {        MessageBox.Show(Enumerator.Value.ToString());    }}System.Collections.ICollection MyKeys;if (MyTable.Count == 0)    MessageBox.Show("The hashtable is empty");else{    MessageBox.Show("Accessing keys property to return keys collection");    MyKeys = MyTable.Keys;    foreach (object Key in MyKeys)    {        MessageBox.Show(Key.ToString());    }}  <?xm-insertion_mark_end?>
      このコードの型の変数を宣言します。 IDictionaryEnumerator 呼び出すと、 GetEnumerator ハッシュ テーブルのコレクションのメソッドです。で、 列挙子 返されたコード列挙し、コレクション内の項目とを使用して、 キー メソッドは、 ハッシュ テーブル キーを列挙します。
  9. 次の手順を使用して、 クリア オフにする方法を ハッシュ テーブル:
    1. 追加します。 ボタン Form1 に、制御し、変更を テキスト プロパティ クリア.
    2. ボタンをダブルクリックし、次のコードを貼り付けます、 Button5_Click イベント:
      MyTable.Clear();      MessageBox.Show("HashTable is now empty");						
  10. ビルドして、アプリケーションを実行するのには、次の手順を実行します。
    1. クリックしてください。 項目を追加します。.メモその 3 オブジェクトは、HashTable コレクションに追加されます。
    2. クリックしてください。 項目を取得します。.インデクサーが HashTable コレクション内の項目を取得することに注意してください。アイテムが表示されますの 3 つを新しく追加します。
    3. クリックしてください。 項目を削除します。."Burris"キーの場所にある項目が削除されることに注意してください。
    4. クリックしてください。 列挙.注意してください。 IDictionaryEnumerator によって、HashTable コレクション内の項目を列挙し、 キー プロパティのハッシュ テーブルのキーのコレクションを返します。
    5. クリックしてください。 クリア.HashTable コレクションからすべての項目がオフになっていることに注意してください。
メモ 使用例の企業、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、場所、およびイベントは架空のものです。実在する会社、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人、場所、またはイベントが、対象としています。 または推論する必要があります。

警告: この記事は自動翻訳されています

プロパティ

文書番号:309357 - 最終更新日: 07/25/2011 01:33:00 - リビジョン: 6.0

  • kbhowtomaster kbmt KB309357 KbMtja
フィードバック
body>