บทความนี้สาธิตวิธีตรวจสอบว่า StringDictionary มีคีย์ (key) ที่ระบุอยู่หรือไม่ โดยใช้เมธอด ContainsKey() ใน C#
ตัวอย่างที่ 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("StringDictionary1 elements...");
foreach (DictionaryEntry d in strDict1)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Does StringDictionary1 has key G? " + strDict1.ContainsKey("G"));
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("\nStringDictionary2 elements...");
foreach (DictionaryEntry d in strDict2)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nIs Dictionary2 equal to Dictionary1? = " + strDict2.Equals(strDict1));
}
}
ผลลัพธ์
StringDictionary1 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Does StringDictionary1 has key G? True StringDictionary2 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Is Dictionary2 equal to Dictionary1? = False
ตัวอย่างที่ 2: ตรวจสอบคีย์ใน StringDictionary อีกตัวอย่าง
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("StringDictionary1 elements...");
foreach (DictionaryEntry d in strDict1)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("Does StringDictionary1 has key G? " + strDict1.ContainsKey("G"));
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("\nStringDictionary2 elements...");
foreach (DictionaryEntry d in strDict2)
{
Console.WriteLine(d.Key + " " + d.Value);
}
Console.WriteLine("\nIs Dictionary2 equal to Dictionary1? = " + strDict2.Equals(strDict1));
Console.WriteLine("Does StringDictionary2 has key B? " + strDict2.ContainsKey("B"));
}
}
ผลลัพธ์
StringDictionary1 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Does StringDictionary1 has key G? True StringDictionary2 elements... a John b Andy c Tim d Ryan e Kevin f Katie g Brad Is Dictionary2 equal to Dictionary1? = False Does StringDictionary2 has key B? True
สรุป
- เมธอด
ContainsKey()คืนค่าtrueหากคีย์มีอยู่ใน StringDictionary มิฉะนั้นคืนค่าfalse - การเปรียบเทียบด้วย
Equals()ระหว่างออบเจ็กต์สองตัวจะคืนค่าfalseเพราะเป็นการเปรียบเทียบอ้างอิง (reference equality) ไม่ใช่ค่า (value equality) - StringDictionary ไม่ควรใช้ในโค้ดใหม่ ควรใช้
Dictionary<string, string>แทนซึ่งมีประสิทธิภาพดีกว่าและรองรับ generic