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

คุณสมบัติ SortedDictionary.Count ใน C# : นับจำนวนคู่ Key-Value

คุณสมบัติ SortedDictionary<TKey, TValue>.Count ใน C# ใช้ดึงจำนวนคู่คีย์-ค่า (key/value pairs) ที่อยู่ใน SortedDictionary ณ ปัจจุบัน

รูปแบบไวยากรณ์ (Syntax)

public int Count { get; }

ตัวอย่างที่ 1: นับจำนวนพร้อม Clear

using System;
using System.Collections;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        SortedDictionary sortedDict = new SortedDictionary();
        
        sortedDict.Add(100, "Mobile");
        sortedDict.Add(200, "Laptop");
        sortedDict.Add(300, "Desktop");
        sortedDict.Add(400, "Speakers");
        sortedDict.Add(500, "Headphone");
        sortedDict.Add(600, "Earphone");
        
        Console.WriteLine("SortedDictionary key-value pairs...");
        IDictionaryEnumerator demoEnum = sortedDict.GetEnumerator();
        while (demoEnum.MoveNext())
        {
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
        }
        
        Console.WriteLine("Count of key-value pairs = " + sortedDict.Count);
        
        Console.WriteLine("\nThe SortedDictionary has key 200? = " + sortedDict.ContainsKey(200));
        
        sortedDict.Clear();
        Console.WriteLine("Count after Clear = " + sortedDict.Count);
    }
}

ผลลัพธ์

SortedDictionary key-value pairs...
Key = 100, Value = Mobile
Key = 200, Value = Laptop
Key = 300, Value = Desktop
Key = 400, Value = Speakers
Key = 500, Value = Headphone
Key = 600, Value = Earphone
Count of SortedDictionary key-value pairs = 6
The SortedDictionary has the key 200? = True
Count of SortedDictionary key-value pairs = 0

ตัวอย่างที่ 2: เพิ่มข้อมูลแล้วนับใหม่

using System;
using System.Collections;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        SortedDictionary sortedDict = new SortedDictionary();
        
        sortedDict.Add(100, "Inspiron");
        sortedDict.Add(200, "Alienware");
        sortedDict.Add(300, "Projectors");
        sortedDict.Add(400, "XPS");
        
        Console.WriteLine("SortedDictionary key-value pairs...");
        IDictionaryEnumerator demoEnum = sortedDict.GetEnumerator();
        while (demoEnum.MoveNext())
        {
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
        }
        
        Console.WriteLine("Count = " + sortedDict.Count);
        
        sortedDict.Add(800, "Notebook");
        sortedDict.Add(10000, "Bluetooth Speaker");
        
        Console.WriteLine("\nSortedDictionary key-value pairs...UPDATED");
        demoEnum = sortedDict.GetEnumerator();
        while (demoEnum.MoveNext())
        {
            Console.WriteLine("Key = " + demoEnum.Key + ", Value = " + demoEnum.Value);
        }
        
        Console.WriteLine("Count (UPDATED) = " + sortedDict.Count);
        
        sortedDict.Clear();
        Console.WriteLine("\nCount after Clear = " + sortedDict.Count);
    }
}

ผลลัพธ์

SortedDictionary key-value pairs...
Key = 100, Value = Inspiron
Key = 200, Value = Alienware
Key = 300, Value = Projectors
Key = 400, Value = XPS
Count of SortedDictionary key-value pairs = 4
SortedDictionary key-value pairs...UPDATED
Key = 100, Value = Inspiron
Key = 200, Value = Alienware
Key = 300, Value = Projectors
Key = 400, Value = XPS
Key = 800, Value = Notebook
Key = 10000, Value = Bluetooth Speaker
Count of SortedDictionary key-value pairs (UPDATED) = 6
Count of SortedDictionary key-value pairs (UPDATED) = 0

สรุป

  • Count เป็น property อ่านอย่างเดียว (read-only) คืนค่า int
  • มีค่า 0 เมื่อ Dictionary ว่าง หรือหลังเรียก Clear()
  • เพิ่มขึ้นเมื่อ Add() หรือ dict[key] = value (key ใหม่)
  • ลดลงเมื่อ Remove(key) สำเร็จ หรือ Clear()
  • Complexity: O(1) - ดึงค่าได้ทันที ไม่ต้องนับทีละตัว
  • แตกต่างจาก Length ของ Array/List - Count ใช้กับ Dictionary/Collection

การใช้งานร่วมกับการวนลูป

// ตรวจสอบว่ามีข้อมูลก่อนวนลูป
if (sortedDict.Count > 0)
{
    foreach (var kvp in sortedDict)
    {
        Console.WriteLine($"{kvp.Key}: {kvp.Value}");
    }
}

// หรือใช้ LINQ
var count = sortedDict.Count(kvp => kvp.Value.StartsWith("A")); // นับเงื่อนไข