บทนำ
คุณสมบัติ Dictionary.Item[] (indexer) ใน C# ใช้ดึงหรือตั้งค่าค่าที่เชื่อมโยงกับคีย์ที่ระบุใน Dictionary เป็นวิธีการเข้าถึงค่าผ่านคีย์โดยตรง
ไวยากรณ์ (Syntax)
public TValue this[TKey key] { get; set; }
ตัวอย่างที่ 1: การเข้าถึง อัปเดต และล้าง Dictionary
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("One", "Chris");
dict.Add("Two", "Steve");
dict.Add("Three", "Messi");
dict.Add("Four", "Ryan");
dict.Add("Five", "Nathan");
Console.WriteLine("Count of elements = " + dict.Count);
Console.WriteLine("\nKey/value pairs...");
foreach (KeyValuePair<string, string> res in dict)
{
Console.WriteLine("Key = {0}, Value = {1}", res.Key, res.Value);
}
Console.WriteLine("Value for key three = " + dict["Three"]);
dict["Three"] = "Ronaldo";
Console.Write("Updated value associated with key Three... ");
Console.WriteLine(dict["Three"]);
if (dict.ContainsValue("Angelina"))
Console.WriteLine("\n\nValue found!");
else
Console.WriteLine("\n\nValue isn't in the dictionary!");
dict.Clear();
Console.WriteLine("Cleared Key/value pairs...");
foreach (KeyValuePair<string, string> res in dict)
{
Console.WriteLine("Key = {0}, Value = {1}", res.Key, res.Value);
}
Console.WriteLine("Count of elements now = " + dict.Count);
}
}
ผลลัพธ์
Count of elements = 5 Key/value pairs... Key = One, Value = Chris Key = Two, Value = Steve Key = Three, Value = Messi Key = Four, Value = Ryan Key = Five, Value = Nathan Value for key three = Messi Updated value associated with key Three... Ronaldo Value isn't in the dictionary! Cleared Key/value pairs... Count of elements now = 0
ตัวอย่างที่ 2: การเข้าถึงและอัปเดตค่า
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("One", "Chris");
dict.Add("Two", "Steve");
dict.Add("Three", "Messi");
dict.Add("Four", "Ryan");
dict.Add("Five", "Nathan");
Console.WriteLine("Count of elements = " + dict.Count);
Console.WriteLine("\nKey/value pairs...");
foreach (KeyValuePair<string, string> res in dict)
{
Console.WriteLine("Key = {0}, Value = {1}", res.Key, res.Value);
}
Console.WriteLine("Value for key three = " + dict["Three"]);
dict["Three"] = "Katie";
Console.Write("Updated value associated with key Three... ");
Console.WriteLine(dict["Three"]);
}
}
ผลลัพธ์
Count of elements = 5 Key/value pairs... Key = One, Value = Chris Key = Two, Value = Steve Key = Three, Value = Messi Key = Four, Value = Ryan Key = Five, Value = Nathan Value for key three = Messi Updated value associated with key Three... Katie
สรุป
Indexer Item[] เป็นวิธีที่สะดวกที่สุดในการเข้าถึงค่าใน Dictionary การอ่าน dict[key] จะโยน KeyNotFoundException หากคีย์ไม่มีอยู่ (ต่างจาก TryGetValue) การเขียน dict[key] = value จะเพิ่มคีย์ใหม่หรืออัปเดตค่าคีย์ที่มีอยู่แล้ว