วนซ้ำผ่านคอลเลกชัน
รายการ อาร์เรย์ และพจนานุกรม
วนซ้ำผ่านคอลเลกชัน เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ลูป foreach
- วนซ้ำผ่านคอลเลกชัน
- break และ continue
- ข้อผิดพลาดทั่วไปในการวนซ้ำ