Giới thiệu
Để kiểm tra xem StringDictionary có chứa một giá trị cụ thể hay không, ta sử dụng phương thức ContainsValue(). Lớp StringDictionary nằm trong namespace System.Collections.Specialized và lưu trữ các cặp khóa/giá trị dưới dạng chuỗi.
Ví dụ 1
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo
{
public static void Main()
{
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("A", "John");
strDict1.Add("B", "Andy");
strDict1.Add("C", "Tim");
strDict1.Add("D", "Ryan");
strDict1.Add("E", "Kevin");
strDict1.Add("F", "Katie");
strDict1.Add("G", "Brad");
Console.WriteLine("Các phần tử StringDictionary1...");
foreach (DictionaryEntry d in strDict1)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("StringDictionary1 có khóa G? " + strDict1.ContainsKey("G"));
Console.WriteLine("StringDictionary1 có giá trị Ryan? " + strDict1.ContainsValue("Ryan"));
StringDictionary strDict2 = new StringDictionary();
strDict2.Add("A", "John");
strDict2.Add("B", "Andy");
strDict2.Add("C", "Tim");
strDict2.Add("D", "Ryan");
strDict2.Add("E", "Kevin");
strDict2.Add("F", "Katie");
strDict2.Add("G", "Brad");
Console.WriteLine("\nCác phần tử StringDictionary2...");
foreach (DictionaryEntry d in strDict2)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nDictionary2 có bằng Dictionary1? = " + strDict2.Equals(strDict1));
Console.WriteLine("StringDictionary2 có khóa B? " + strDict2.ContainsKey("B"));
}
}
Kết quả
Các phần tử StringDictionary1... a John b Andy c Tim d Ryan e Kevin f Katie g Brad StringDictionary1 có khóa G? True StringDictionary1 có giá trị Ryan? True Các phần tử StringDictionary2... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Dictionary2 có bằng Dictionary1? = False StringDictionary2 có khóa B? True
Ví dụ 2
using System;
using System.Collections;
using System.Collections.Specialized;
public class Demo
{
public static void Main()
{
StringDictionary strDict1 = new StringDictionary();
strDict1.Add("U", "Electronics");
strDict1.Add("V", "Toys");
strDict1.Add("W", "Books");
strDict1.Add("X", "Accessories");
Console.WriteLine("Các phần tử StringDictionary1...");
foreach (DictionaryEntry d in strDict1)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("StringDictionary1 có khóa G? " + strDict1.ContainsKey("G"));
Console.WriteLine("StringDictionary1 có giá trị Footwear? " + strDict1.ContainsValue("Footwear"));
StringDictionary strDict2 = new StringDictionary();
strDict2.Add("A", "John");
strDict2.Add("B", "Andy");
strDict2.Add("C", "Tim");
strDict2.Add("D", "Ryan");
strDict2.Add("E", "Kevin");
strDict2.Add("F", "Katie");
strDict2.Add("G", "Brad");
Console.WriteLine("\nCác phần tử StringDictionary2...");
foreach (DictionaryEntry d in strDict2)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nDictionary2 có bằng Dictionary1? = " + strDict2.Equals(strDict1));
Console.WriteLine("StringDictionary2 có khóa B? " + strDict2.ContainsKey("B"));
}
}
Kết quả
Các phần tử StringDictionary1... x Accessories u Electronics v Toys w Books StringDictionary1 có khóa G? False StringDictionary1 có giá trị Footwear? False Các phần tử StringDictionary2... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Dictionary2 có bằng Dictionary1? = False StringDictionary2 có khóa B? True
Lưu ý quan trọng
- Phương thức
ContainsValue()thực hiện tìm kiếm tuyến tính (O(n)), nên hiệu suất có thể chậm với dictionary lớn. StringDictionarykhông phân biệt chữ hoa/chữ thường cho khóa (khóa được chuyển thành chữ thường).- Trong .NET hiện đại, khuyến nghị sử dụng
Dictionary<string, string>thay vìStringDictionary.