Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Lấy ICollection chứa các giá trị trong Hashtable C#

Giới thiệu

Hashtable (namespace System.Collections) lưu trữ cặp khóa-giá trị. Thuộc tính Values trả về ICollection chứa tất cả giá trị, trong khi Keys trả về tập hợp khóa. Lưu ý: thứ tự không được đảm bảo.

Ví dụ 1: Duyệt qua Keys để lấy giá trị

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add("A", "Electronics");
        hash.Add("B", "Appliances");
        hash.Add("C", "Pet Supplies");
        hash.Add("D", "Books");
        hash.Add("E", "Toys");
        hash.Add("F", "Footwear");
        hash.Add("G", "Clothing");
        
        ICollection col = hash.Keys;
        foreach (string str in col)
        {
            Console.WriteLine(str + ": " + hash[str]);
        }
    }
}

Kết quả

G: Clothing
A: Electronics
B: Appliances
C: Pet Supplies
D: Books
E: Toys
F: Footwear

Ví dụ 2: Sử dụng khóa số nguyên

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        Hashtable hash = new Hashtable();
        hash.Add(1, "AB");
        hash.Add(2, "CD");
        hash.Add(3, "EF");
        hash.Add(4, "GH");
        hash.Add(5, "IJ");
        hash.Add(6, "KL");
        hash.Add(7, "MN");
        
        ICollection col = hash.Keys;
        foreach (int str in col)
        {
            Console.WriteLine("Key = " + str + ", Value = " + hash[str]);
        }
    }
}

Kết quả

Key = 7, Value = MN
Key = 6, Value = KL
Key = 5, Value = IJ
Key = 4, Value = GH
Key = 3, Value = EF
Key = 2, Value = CD
Key = 1, Value = AB

Lưu ý quan trọng

  • Hashtable không đảm bảo thứ tự phần tử
  • Để duyệt cả khóa và giá trị hiệu quả, dùng foreach (DictionaryEntry entry in hash)
  • Trong .NET mới, ưu tiên dùng Dictionary<TKey, TValue> (kiểu mạnh, hiệu suất tốt hơn)
  • Values trả về tập hợp giá trị, Keys trả về tập hợp khóa