วิธีการทำงานกับคอลเลกชัน HashTable ใน Visual c#

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 309357 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับรุ่น Microsoft Visual Basic .NET ของบทความนี้ ดู307933.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้แสดงวิธีการใช้คอลเลกชัน HashTable เนื่องจาก hashing eliminates จำเป็นสำหรับการค้นหา costly ของข้อมูลในการดึงข้อมูล คุณสามารถใช้ hashing ดึงข้อมูลได้อย่างมีประสิทธิภาพ hashing ใช้ค่าของคีย์ตัวเองเพื่อค้นหาตำแหน่งของข้อมูล

ไลบรารีคลาสฐานเสนอเป็นHashTableคลาสที่กำหนดในการSystem.Collectionsnamespace ดังนั้นคุณไม่จำเป็นต้องใช้รหัสตารางแฮของคุณเอง

ขั้นตอนในการสร้างตัวอย่าง

คอลเลกชัน HashTable เก็บเป็น(แป้น ค่า)คู่และใช้การคีย์:แฮ และดูสถานที่เก็บ กระบวนการคีย์:มี immutable และไม่มีรายการที่ซ้ำกันในนั้นHashTable. ตัวอย่างนี้ใช้อินสแตนซ์ต่าง ๆ ของ simple เป็นบุคคลคลาสที่เก็บในตัวHashTable. นามสกุลถูกใช้เป็นคีย์:.
  1. เปิด Microsoft Visual Studio และต้องสร้างโครงการแอพลิเคชันฟอร์ม Windows ใน Visual c# form1 ถูกเพิ่มเข้าไปในโครงการที่เป็นค่าเริ่มต้น
  2. โซลูชัน Explorer คลิกขวาชื่อโครงการ ชี้ไปที่addแล้ว คลิกคลาสเมื่อต้องการเพิ่มคลาโมดูล 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;
    	}
    }
    						
    กระบวนการบุคคลคลาสที่มีตัวสร้างหนึ่งที่ปฏิบัติการFirstNameและLastNameพารามิเตอร์ และกำหนดพารามิเตอร์เหล่านี้กับตัวแปรภายในเครื่อง กระบวนการToStringฟังก์ชัน overridesToStringจากนั้นวัตถุคลาเพื่อย้อนกลับFnameและLnameconcatenated เข้าด้วยกัน
  4. สร้างแบบฟอร์มระดับHashtableวัตถุ และกำหนดตัวแปรที่สามชนิดบุคคล. เพิ่มรหัสต่อไปนี้เป็นคลาส 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. ในขั้นตอนต่อไปนี้ ใช้addวิธีการนี้Hashtableวัตถุเพื่อเพิ่ม 3บุคคลวัตถุไปยังHashtableในตัวลอง-catchบล็อก กระบวนการลอง-catchบล็อก catches ข้อยกเว้น และแสดงข้อความถ้ามีคีย์ที่ซ้ำกัน:
    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. กระบวนการHashtableวัตถุให้เป็นตัวสร้างดัชนี ในขั้นตอนต่อไปนี้ จัดทำดัชนีมีการคีย์:การเข้าถึงค่าที่เก็บอยู่ในตำแหน่งที่ตั้ง hashed:
    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?>
      รหัสนี้ declares ตัวแปรของชนิดIDictionaryEnumeratorและมีเรียกGetEnumeratorวิธีการเรียกเก็บเงิน HashTable ด้วยการแจงนับส่งคืน รหัสระบุยังรายการต่าง ๆ ในการเก็บรวบรวม และใช้การคีย์วิธีการนี้HashTableเมื่อต้องการระบุถึงแป้นเหล่านั้น
  9. ในขั้นตอนต่อไปนี้ ใช้ยกเลิกการเลือกวิธีการยกเลิกเลือกนั้นHashTable:
    1. เพิ่มคำปุ่มควบคุมการ Form1 และเปลี่ยนแปลงนั้นข้อความคุณสมบัติการยกเลิกการเลือก.
    2. คลิกสองครั้งปุ่ม และวางรหัสต่อไปนี้ในการButton5_Clickเหตุการณ์:
      MyTable.Clear();
            MessageBox.Show("HashTable is now empty");
      						
  10. ทำตามขั้นตอนเหล่านี้เพื่อสร้าง และเรียกใช้โปรแกรมประยุกต์:
    1. คลิกเพิ่มรายการ. หมายเหตุที่สามบุคคลวัตถุที่ถูกเพิ่มไปยังคอลเลกชัน HashTable
    2. คลิกรับสินค้า. โปรดสังเกตว่า ตัวสร้างดัชนีการรับสินค้าในคอลเลกชัน HashTable สามเพิ่งเพิ่มแสดงรายการ
    3. คลิกลบรายการ. โปรดสังเกตว่า มีลบรายการที่ตั้งของคีย์ "Burris"
    4. คลิกการระบุ. หมายเหตุที่IDictionaryEnumeratorระบุถึงสินค้าที่อยู่ในคอลเลกชัน HashTable และคีย์คุณสมบัติของ HashTable ส่งกลับค่าคอลเลกชันของคีย์
    5. คลิกยกเลิกการเลือก. โปรดสังเกตว่า สินค้าทั้งหมดจะถูกล้างออกจากคอลเลกชัน HashTable
หมายเหตุ:ตัวอย่างบริษัท องค์กร ผลิตภัณฑ์ ชื่อโดเมน ที่อยู่อีเมล โลโก้ บุคคล ตำแหน่ง และเหตุการณ์ที่อธิบายนี้จะสมมติ ไม่มีความสัมพันธ์กับใด ๆ บริษัทจริง องค์กร ผลิตภัณฑ์ ชื่อโดเมน ที่อยู่อีเมล โลโก้ บุคคล ตำแหน่ง หรือเหตุการณ์โดยเฉพาะ หรือควรจะ inferred

คุณสมบัติ

หมายเลขบทความ (Article ID): 309357 - รีวิวครั้งสุดท้าย: 10 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbhowtomaster kbmt KB309357 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:309357

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com