0Pricing
C# Academy · บทเรียน

HashSet<T>, SortedSet<T>, Queue<T>, Stack<T>

ทำความเข้าใจเซตที่เก็บสมาชิกไม่ซ้ำกับเซตที่เรียงลำดับ รวมถึงคอลเลกชันแบบ FIFO/LIFO ฝึกใช้ Add/Contains, Enqueue/Dequeue และ Push/Pop

HashSet<T>, SortedSet<T>, Queue<T>, Stack<T> เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน

รูปแบบของคอลเลกชัน

เป้าหมาย: เลือกคอลเลกชันให้เหมาะสม

  • HashSet<T>: ค่าไม่ซ้ำกัน ค้นหาได้รวดเร็ว
  • SortedSet<T>: ค่าไม่ซ้ำกันและเรียงลำดับแล้ว
  • Queue<T>: FIFO
  • Stack<T>: LIFO

พื้นฐาน HashSet

HashSet<T> จะเก็บค่าไม่ซ้ำกัน โดย Add จะคืนค่า false เมื่อเพิ่มค่าซ้ำ และ Contains ทำงานได้รวดเร็ว

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    HashSet<string> tags = new HashSet<string>();
    bool a1 = tags.Add("red");   // true
    bool a2 = tags.Add("blue");  // true
    bool a3 = tags.Add("red");   // false (duplicate ignored)

    Console.WriteLine("Has red? " + tags.Contains("red"));
    Console.WriteLine("Count = " + tags.Count); // 2
  }
}

พื้นฐาน SortedSet

SortedSet<T> จะเก็บรายการให้ ไม่ซ้ำกัน และ เรียงลำดับแล้ว ขณะที่คุณเพิ่มรายการ

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    SortedSet<int> scores = new SortedSet<int>();
    scores.Add(30);
    scores.Add(10);
    scores.Add(20);
    scores.Add(20); // duplicate ignored

    foreach (int s in scores)
    {
      Console.WriteLine(s); // 10, 20, 30 (sorted ascending)
    }

    Console.WriteLine("Min = " + (scores.Count > 0 ? scores.Min : 0));
    Console.WriteLine("Max = " + (scores.Count > 0 ? scores.Max : 0));
  }
}

คิว (FIFO)

Queue<T> ทำงานแบบ FIFO: Enqueue → Dequeue ใช้ Peek เพื่อดูข้อมูลโดยไม่ลบออก

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    Queue<string> q = new Queue<string>();
    q.Enqueue("A");
    q.Enqueue("B");
    q.Enqueue("C");

    Console.WriteLine("Peek = " + q.Peek()); // A
    Console.WriteLine(q.Dequeue());          // A
    Console.WriteLine(q.Dequeue());          // B
    Console.WriteLine("Count = " + q.Count); // 1
  }
}

สแตก (LIFO)

Stack<T> ทำงานแบบ LIFO: Push → Pop ส่วน Peek ใช้ตรวจดูรายการด้านบนสุด

using System;
using System.Collections.Generic;

public class Program
{
  public static void Main(string[] args)
  {
    Stack<int> st = new Stack<int>();
    st.Push(1);
    st.Push(2);
    st.Push(3);

    Console.WriteLine("Peek = " + st.Peek()); // 3
    Console.WriteLine(st.Pop());              // 3
    Console.WriteLine(st.Pop());              // 2
    Console.WriteLine("Count = " + st.Count); // 1
  }
}

เคล็ดลับการเลือกใช้

สรุปเลือกใช้:

  • ต้องการค่าไม่ซ้ำกันและค้นหาได้รวดเร็ว → HashSet<T>
  • ต้องการค่าไม่ซ้ำกันและเรียงลำดับ → SortedSet<T>
  • ประมวลผลตามลำดับที่เข้ามา → Queue<T> (FIFO)
  • ประมวลผลรายการที่เข้ามาทีหลังสุดก่อน → Stack<T> (LIFO)

การเลือกเซต

ตรวจสอบสั้น ๆ: คอลเลกชันใดรับประกันว่าสมาชิกไม่ซ้ำกัน และค้นหาค่าได้รวดเร็วโดยเฉลี่ย

สรุป

สรุป: ใช้เซตเมื่อต้องการค่าที่ไม่ซ้ำกัน (HashSet, SortedSet) และเลือก FIFO (Queue) หรือ LIFO (Stack) สำหรับการประมวลผลตามลำดับ

คำถามที่พบบ่อย

บทเรียน “HashSet<T>, SortedSet<T>, Queue<T>, Stack<T>” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “HashSet<T>, SortedSet<T>, Queue<T>, Stack<T>” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “HashSet<T>, SortedSet<T>, Queue<T>, Stack<T>”

ทำความเข้าใจเซตที่เก็บสมาชิกไม่ซ้ำกับเซตที่เรียงลำดับ รวมถึงคอลเลกชันแบบ FIFO/LIFO ฝึกใช้ Add/Contains, Enqueue/Dequeue และ Push/Pop คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน

บทเรียน “HashSet<T>, SortedSet<T>, Queue<T>, Stack<T>” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. HashSet , SortedSet , Queue , Stack
  2. ConcurrentDictionary และคอลเลกชันไม่เปลี่ยนแปลง
  3. ความเท่ากันและการแฮช (ค่ากับการอ้างอิง)
← กลับไปที่ C# Academy