Bảng băm C# với các ví dụ
Hashtable trong C# là gì?
Bảng băm là một bộ sưu tập đặc biệt được sử dụng để lưu trữ các mục khóa-giá trị. Vì vậy, thay vì chỉ lưu trữ một giá trị như ngăn xếp, danh sách mảng và hàng đợi, bảng băm lưu trữ 2 giá trị. 2 giá trị này tạo thành một phần tử của bảng băm.
Dưới đây là một số ví dụ về cách các giá trị của bảng băm trông như thế nào.
{ "001" , ".Net" } { "002" , ".C#" } { "003" , "ASP.Net" }
Ở trên chúng ta có 3 cặp giá trị chính. Các khóa của mỗi phần tử lần lượt là 001, 002 và 003. Giá trị của mỗi cặp giá trị khóa là “Net.“, “C#” và “ASP.Net” tương ứng.
Hãy xem xét các hoạt động có sẵn cho bộ sưu tập Hashtable một cách chi tiết hơn.
Tuyên bố của Hashtable
Việc khai báo Hashtable được hiển thị bên dưới. Hashtable được tạo với sự trợ giúp của Kiểu dữ liệu Hashtable. Từ khóa “mới” được sử dụng để tạo đối tượng của Hashtable. Đối tượng sau đó được gán cho biến ht.
Hashtable ht = new Hashtable()
Thêm các phần tử vào Hashtable
Phương thức Add được sử dụng để thêm một phần tử vào hàng đợi. Cú pháp chung của câu lệnh được đưa ra dưới đây
HashTable.add("key","value")
Ví dụ 1:
Hãy nhớ rằng mỗi phần tử của bảng băm bao gồm 2 giá trị, một là khóa và một là giá trị.
Bây giờ, hãy xem điều này hoạt động ở cấp độ mã. Tất cả mã được đề cập bên dưới sẽ được ghi vào ứng dụng Console của chúng tôi.
Mã sẽ được ghi vào tệp Program.cs của chúng tôi. Trong chương trình bên dưới, chúng ta sẽ viết mã để xem cách chúng ta có thể sử dụng các phương pháp nêu trên.
Bây giờ, trong ví dụ của chúng ta, chúng ta sẽ chỉ xem cách chúng ta có thể tạo một hashtable, thêm các phần tử vào hashtable và hiển thị chúng cho phù hợp.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); ICollection keys = ht.Keys; foreach (String k in keys) { Console.WriteLine(ht[k]); } Console.ReadKey(); } } }
Giải thích mã: -
- Đầu tiên, chúng ta khai báo biến có thể băm bằng cách sử dụng kiểu dữ liệu Hashtable bằng từ khóa “Mới”. Tên của biến được xác định là 'ht'.
- Sau đó, chúng tôi thêm các phần tử vào bảng băm bằng phương thức Thêm. Hãy nhớ rằng chúng ta cần thêm cả phần tử khóa và giá trị khi thêm thứ gì đó vào bảng băm.
- Không có cách nào trực tiếp để hiển thị các phần tử của bảng băm.
- Để hiển thị hashtable, trước tiên chúng ta cần lấy danh sách các khóa (001, 002 và 003) từ bảng băm.
- Điều này được thực hiện thông qua giao diện ICollection. Đây là loại dữ liệu đặc biệt có thể được sử dụng để lưu trữ khóa của bộ sưu tập có thể băm. Sau đó, chúng tôi gán các khóa của bộ sưu tập có thể băm cho biến 'khóa'.
- Tiếp theo, đối với mỗi giá trị khóa, chúng ta nhận được giá trị liên quan trong bảng băm bằng cách sử dụng câu lệnh ht[k].
Nếu mã trên được nhập đúng và chương trình được chạy thì kết quả sau sẽ được hiển thị.
Đầu ra:
Hãy xem xét thêm một số phương pháp có sẵn cho bảng băm.
Chứa khóa
Phương thức này được sử dụng để xem liệu khóa có trong Hashtable hay không. Dưới đây là cú pháp chung của câu lệnh này. Câu lệnh sẽ trả về true nếu khóa tồn tại, nếu không nó sẽ trả về giá trị false.
Hashtable.Containskey(key)
Chứa giá trị
Phương thức này được sử dụng để xem liệu Giá trị có xuất hiện trong Hashtable hay không. Dưới đây là cú pháp chung của câu lệnh này. Câu lệnh sẽ trả về true nếu Giá trị tồn tại, nếu không nó sẽ trả về giá trị sai.
Hashtable.ContainsValue(value)
Ví dụ 2:
Hãy thay đổi mã trong Ứng dụng giao diện điều khiển để giới thiệu cách chúng tôi có thể sử dụng phương thức “Containskey” và “ContainsValue”.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Hashtable ht = new Hashtable(); ht.Add("001",".Net"); ht.Add("002","C#"); ht.Add("003","ASP.Net"); Console.WriteLine(ht.ContainsKey("001")); Console.WriteLine(ht.ContainsValue("C#")); Console.ReadKey(); } } }
Giải thích mã: -
- Đầu tiên, chúng tôi sử dụng phương thức ChứaKey để xem liệu khóa có trong bảng băm hay không. Phương thức này sẽ trả về true nếu khóa có trong bảng băm. Phương thức này sẽ trả về true vì khóa tồn tại trong bảng băm.
- Sau đó, chúng tôi sử dụng phương thức ChứaValue để xem liệu giá trị có trong bảng băm hay không. Phương thức này sẽ trả về 'true' vì Giá trị tồn tại trong bảng băm.
Nếu mã trên được nhập đúng và chương trình được chạy thì kết quả sau sẽ được hiển thị.
Đầu ra:
Từ kết quả đầu ra, bạn có thể thấy rõ rằng cả khóa và giá trị đang được tìm kiếm đều có trong bảng băm.
Tổng kết
Hashtable được sử dụng để lưu trữ các phần tử bao gồm các cặp giá trị khóa. Để truy cập giá trị của một phần tử, bạn cần biết khóa của phần tử đó.