Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

คุณสมบัติ Dictionary.Item[] ใน C# พร้อมตัวอย่าง


บทนำ

คุณสมบัติ 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 จะเพิ่มคีย์ใหม่หรืออัปเดตค่าคีย์ที่มีอยู่แล้ว