Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để làm việc với bộ sưu tập HashTable trong Visual C#

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 309357
Một phiên bản Microsoft Visual Basic.net của bài viết này, xin xem 307933.
Tóm tắt
Bài viết từng bước này cho bạn thấy làm thế nào để sử dụng bộ sưu tập HashTable. Bởi vì băm giúp loại bỏ sự cần thiết cho việc tra cứu tốn tầm nhìn thấp của dữ liệu để truy xuất dữ liệu, bạn có thể sử dụng băm để hiệu quả lấy dữ liệu. Băm sử dụng giá trị của chính bản thân để xác định vị trí của dữ liệu.

Thư viện lớp cơ sở cung cấp một lớp HashTable được định nghĩa trong không gian tên System.Collections do đó bạn không được yêu cầu để mã bảng băm của riêng bạn.

Các bước để xây dựng mẫu

Một bộ sưu tập HashTable mua sắm một cặp (Key, giá trị) và sử dụng phím để băm và có được vị trí lưu trữ. Phím là không thay đổi và không thể có mục trùng lặp trong HashTable. Mẫu này sử dụng một số trường hợp của một tầng lớp người đơn giản để lưu trữ trong một HashTable. Tên cuối cùng được sử dụng là chìa khóa.
  1. Mở Microsoft Visual Studio và tạo ra một dự án cửa sổ hình thức ứng dụng trong Visual C#. theo mặc định, Form1 được thêm vào dự án.
  2. Trong giải pháp Explorer, bấm chuột phải vào tên của dự án, điểm để Thêm, và sau đó nhấp vào lớp để thêm một lớp mô-đun. Class1 được thêm vào các dự án theo mặc định.
  3. Thay thế bất kỳ mã trong các mô-đun Class1 với đoạn mã sau:
     public class Person{	public string Fname, Lname;	public Person(string FirstName, string LastName)	{		Fname = FirstName;		Lname = LastName;	}	public override string ToString()	{		return Fname + " " + Lname;	}}						
    Các lớp học người đã xây dựng một mà mất các tham số FirstNameLastName và chỉ định các tham số cho các biến địa phương. Chức năng ToString sẽ thay thế ToString từ các đối tượng lớp để trở về FnameLname nối với nhau.
  4. Tạo ra một hình thức cấp Hashtable đối tượng, và tuyên bố ba biến loại người. Thêm mã sau vào Form1 lớp:
    <?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. Trong bước sau, sử dụng phương pháp Thêm đối tượng Hashtable để thêm ba người đối tượng để Hashtable trong một khối thử-bắt . Các khối cố gắng nắm bắt bắt ngoại lệ và hiển thị một thông báo nếu trùng lặp phím tồn tại:
    1. Đặt một nút chọn một điều khiển vào Form1, và thay đổi nhà văn bản để Thêm mục.
    2. Bấm đúp nút chọn một để mở cửa sổ mã của nó, và dán đoạn mã sau trong trường hợp 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. Đối tượng Hashtable cung cấp một mục chỉ dẫn. Trong bước sau, chỉ số với phím để truy cập vào giá trị được lưu trữ tại băm nhỏ từng vị trí:
    1. Thêm một nút chọn một kiểm soát để Form1, và thay đổi tài sản tên để Nhận được ghi.
    2. Bấm đúp nút chọn một, và dán đoạn mã sau trong trường hợp 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. Trong bước sau, sử dụng phương pháp loại bỏ để loại bỏ một mục duy nhất từ bộ sưu tập HashTable:
    1. Thêm một nút chọn một kiểm soát để Form1, và thay đổi nhà văn bản để Loại bỏ khoản mục.
    2. Bấm đúp nút chọn một, và dán đoạn mã sau trong trường hợp 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. Trong bước sau, liệt kê các mục được lưu trữ trong bộ sưu tập HashTable:
    1. Thêm một nút chọn một kiểm soát để Form1, và thay đổi nhà văn bản để Liệt kê.
    2. Bấm đúp nút chọn một, và dán đoạn mã sau trong trường hợp 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?>
      Mã này tuyên bố một biến loại IDictionaryEnumerator và gọi phương pháp GetEnumerator của bộ sưu tập HashTable. Với số đếm trở về, các mã liệt kê thông qua các mục trong bộ sưu tập và sử dụng phương pháp phímHashTable liệt kê thông qua các phím.
  9. Trong bước sau, sử dụng phương pháp xóa để xóa HashTable:
    1. Thêm một nút chọn một kiểm soát để Form1, và thay đổi nhà văn bản để Rõ ràng.
    2. Bấm đúp nút chọn một, và dán đoạn mã sau trong trường hợp Button5_Click :
      MyTable.Clear();      MessageBox.Show("HashTable is now empty");						
  10. Thực hiện theo các bước sau để xây dựng bật lên và chạy các ứng dụng:
    1. Bấm vào Thêm bản ghi. Lưu ý rằng ba người đối tượng được bổ sung vào bộ sưu tập HashTable.
    2. Nhấp vào nhận được ghi. Lưu ý rằng các indexer có được các mục trong bộ sưu tập HashTable. Ba mới được thêm vào mục được hiển thị.
    3. Nhấp vào xoá mục. Lưu ý rằng mục tại điểm quan trọng "Burris" sẽ bị xóa.
    4. Nhấp vào liệt kê. Lưu ý rằng IDictionaryEnumerator liệt kê thông qua các mục trong bộ sưu tập HashTable, và tài sản phím của HashTable trả về một tập hợp phím.
    5. Nhấp vào rõ ràng. Lưu ý rằng tất cả các mục được xóa từ các bộ sưu tập HashTable.
Lưu ý Ví dụ công ty, tổ chức, sản phẩm, tên miền, địa chỉ e-mail, biểu trưng, người, địa điểm, và sự kiện được mô tả ở đây là hư cấu. Không có liên kết với bất kỳ công ty thực sự, tổ chức, sản phẩm, tên miền, địa chỉ email, biểu trưng, người, địa điểm hoặc sự kiện được thiết kế hoặc suy diễn mối.

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 309357 - Xem lại Lần cuối: 03/03/2014 22:48:00 - Bản sửa đổi: 3.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

  • kbhowtomaster kbmt KB309357 KbMtvi
Phản hồi
>