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

วนซ้ำผ่านคอลเลกชัน

รายการ อาร์เรย์ และพจนานุกรม

วนซ้ำผ่านคอลเลกชัน เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คอลเลกชันที่สามารถวนซ้ำได้

ชนิดข้อมูลหลายชนิดใน C# สามารถใช้ลูป foreach ได้ เช่น อาร์เรย์ List<T> ดิกชันนารี และชนิดอื่นๆ

ชนิดข้อมูลเหล่านี้รองรับการวนซ้ำทั้งหมด เพราะใช้อินเทอร์เฟซร่วมกัน คุณไม่จำเป็นต้องรู้รายละเอียดเพื่อใช้งาน

การวนซ้ำอาร์เรย์

อาร์เรย์มีขนาดคงที่ซึ่งกำหนดไว้เมื่อสร้าง

คุณสามารถวนผ่านอาร์เรย์ที่มีชนิดข้อมูลสมาชิกใดก็ได้ด้วยวิธีเดียวกัน

double[] prices = { 9.99, 4.50, 19.00 };
foreach (var p in prices)
{
    Console.WriteLine(p);
}

การวนซ้ำรายการ

List<T> สามารถขยายและลดขนาดได้ เป็นหนึ่งในคอลเลกชันที่ใช้กันบ่อยที่สุด

การวนผ่านรายการทำได้เหมือนกับการวนผ่านอาร์เรย์ทุกประการ

var fruits = new List<string> { "apple", "pear" };
foreach (var f in fruits)
{
    Console.WriteLine(f);
}

การนับขณะวนซ้ำ

บางครั้งคุณอาจต้องการใช้ตัวนับที่จัดการเองภายใน foreach

ประกาศตัวแปรก่อนลูปและเพิ่มค่าตัวแปรนั้นในแต่ละรอบ

var items = new List<string> { "a", "b", "c" };
int i = 0;
foreach (var item in items)
{
    Console.WriteLine(i + ": " + item);
    i++;
}

การวนซ้ำดิกชันนารี

Dictionary<K,V> ใช้จัดเก็บคู่คีย์กับค่า

การวนผ่านดิกชันนารีจะส่ง KeyValuePair ที่มี .Key และ .Value มาให้คุณ

var ages = new Dictionary<string, int>
{
    ["Ada"] = 36,
    ["Linus"] = 54
};
foreach (var pair in ages)
{
    Console.WriteLine(pair.Key + "=" + pair.Value);
}

คีย์และค่าของดิกชันนารี

หากคุณต้องการเฉพาะคีย์หรือเฉพาะค่า ให้ใช้คุณสมบัติ .Keys หรือ .Values

แต่ละคุณสมบัติเป็นคอลเลกชันในตัวเองที่คุณสามารถวนผ่านได้

foreach (var name in ages.Keys)
{
    Console.WriteLine(name);
}

การวนซ้ำ HashSet

HashSet<T> ใช้จัดเก็บค่าที่ไม่ซ้ำกัน ค่าซ้ำจะถูกละเว้น

คุณสามารถใช้ foreach วนผ่านได้ แต่ไม่รับประกันลำดับของสมาชิก

var tags = new HashSet<string> { "c#", "dotnet", "c#" };
foreach (var t in tags)
{
    Console.WriteLine(t);
}

การวนซ้ำซ้อนกัน

คุณสามารถวาง foreach หนึ่งลูปไว้ภายในอีกลูปหนึ่งเพื่อวนผ่านคอลเลกชันที่ประกอบด้วยคอลเลกชันอื่น

ลูปนี้จะวนผ่านแต่ละ row จากนั้นจึงวนผ่านค่าแต่ละค่าใน row นั้น

int[][] grid = { new[] {1, 2}, new[] {3, 4} };
foreach (var row in grid)
{
    foreach (var v in row)
    {
        Console.WriteLine(v);
    }
}

การสร้างผลลัพธ์

รูปแบบที่ใช้กันทั่วไปคือการวนซ้ำผ่านคอลเลกชันหนึ่ง แล้วเพิ่มรายการที่แปลงแล้วลงในอีกคอลเลกชันหนึ่ง

ในที่นี้ เราคูณตัวเลขแต่ละตัวด้วยสอง แล้วจัดเก็บผลลัพธ์ไว้ในรายการใหม่

var nums = new List<int> { 1, 2, 3 };
var doubled = new List<int>();
foreach (var n in nums)
{
    doubled.Add(n * 2);
}
Console.WriteLine(string.Join(",", doubled));

คอลเลกชันว่าง

หากคอลเลกชันไม่มีองค์ประกอบ เนื้อหาภายใน foreach จะไม่ทำงานเลย

จะไม่เกิดข้อผิดพลาด ทำให้ foreach ปลอดภัยแม้รายการอาจว่างเปล่า

var empty = new List<int>();
foreach (var x in empty)
{
    Console.WriteLine("never printed");
}
Console.WriteLine("done");

สายสัมพันธ์ร่วมของคอลเลกชันที่วนซ้ำได้

คอลเลกชันที่วนซ้ำได้ทุกชนิดใช้อินเทอร์เฟซ IEnumerable<T>

นี่คือสัญญาที่ foreach อาศัยอยู่ ด้วยเหตุนี้ รูปแบบไวยากรณ์ของลูปแบบเดียวกันจึงใช้ได้กับอาร์เรย์ รายการ เซต และพจนานุกรม

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจเกี่ยวกับการวนซ้ำผ่านคอลเลกชัน

สรุปทบทวน

คุณได้เห็นแล้วว่า foreach ทำงานกับอาร์เรย์ รายการ พจนานุกรม และเซตได้อย่างไร

สิ่งเหล่านี้ใช้สัญญา IEnumerable<T> ร่วมกัน จึงใช้รูปแบบลูปเดียวกันได้ทั้งหมด คอลเลกชันว่างปลอดภัย และพจนานุกรมจะแสดงคู่คีย์กับค่า

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

บทเรียน “วนซ้ำผ่านคอลเลกชัน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “วนซ้ำผ่านคอลเลกชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “วนซ้ำผ่านคอลเลกชัน”

รายการ อาร์เรย์ และพจนานุกรม คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

บทเรียน “วนซ้ำผ่านคอลเลกชัน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ลูป foreach
  2. วนซ้ำผ่านคอลเลกชัน
  3. break และ continue
  4. ข้อผิดพลาดทั่วไปในการวนซ้ำ
← กลับไปที่ C# Academy