อาร์เรย์หลายมิติ
กริดและอาร์เรย์ที่มีแถวย่อยไม่เท่ากัน
อาร์เรย์หลายมิติ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน
นอกเหนือจากแถวเดียว
จนถึงตอนนี้อาร์เรย์เป็นเพียงค่าที่เรียงอยู่ในบรรทัดเดียว อาร์เรย์หลายมิติจะจัดเก็บค่าในตาราง เช่นเดียวกับสเปรดชีตที่มีแถวและคอลัมน์
อาร์เรย์ลักษณะนี้เหมาะสำหรับกระดานเกม ตาราง และเมทริกซ์
การประกาศอาร์เรย์สองมิติ
อาร์เรย์สองมิติใช้จุลภาคภายในวงเล็บเหลี่ยม: [,] คุณต้องระบุขนาดสองค่า ได้แก่ จำนวนแถวและจำนวนคอลัมน์
ตารางนี้มี 2 แถวและ 3 คอลัมน์ จึงเก็บค่าได้ 6 ค่า
int[,] grid = new int[2, 3];
Console.WriteLine(grid[0, 0]); // 0การเข้าถึงเซลล์
หากต้องการอ่านหรือเขียนเซลล์ ให้ระบุดัชนีของทั้ง row และคอลัมน์ โดยคั่นด้วยจุลภาค
ดัชนีทั้งสองเริ่มนับจากศูนย์เช่นเดียวกับอาร์เรย์หนึ่งมิติ
int[,] grid = new int[2, 3];
grid[0, 1] = 7;
grid[1, 2] = 9;
Console.WriteLine(grid[1, 2]); // 9การเริ่มต้นค่าตาราง
คุณสามารถเติมค่าให้อาร์เรย์สองมิติขณะสร้างได้โดยใช้เครื่องหมายปีกกาซ้อนกัน กลุ่มด้านในแต่ละกลุ่มคือหนึ่ง row
ทุกแถวต้องมีจำนวนคอลัมน์เท่ากัน
int[,] grid = { { 1, 2, 3 }, { 4, 5, 6 } };
Console.WriteLine(grid[1, 0]); // 4เมธอด GetLength
เมื่อมีสองมิติ Length จะให้จำนวนเซลล์ทั้งหมด หากต้องการขนาดของมิติใดมิติหนึ่ง ให้ใช้ GetLength
GetLength(0) คือจำนวนแถว และ GetLength(1) คือจำนวนคอลัมน์
int[,] grid = { { 1, 2, 3 }, { 4, 5, 6 } };
Console.WriteLine(grid.Length); // 6
Console.WriteLine(grid.GetLength(0)); // 2
Console.WriteLine(grid.GetLength(1)); // 3การวนผ่านตาราง
หากต้องการเข้าถึงทุกเซลล์ ให้ใช้ลูปหนึ่งสำหรับ row ซ้อนอยู่ในอีกลูปหนึ่งสำหรับคอลัมน์ ลูปด้านนอกเลือก row ส่วนลูปด้านในจะวนผ่านคอลัมน์ของ row นั้น
ใช้ GetLength เพื่อให้ลูปสอดคล้องกับขนาดจริง
int[,] grid = { { 1, 2 }, { 3, 4 } };
for (int r = 0; r < grid.GetLength(0); r++)
{
for (int c = 0; c < grid.GetLength(1); c++)
{
Console.WriteLine(grid[r, c]);
}
}โปรแกรมตารางฉบับสมบูรณ์
โปรแกรมฉบับสมบูรณ์นี้สร้างตารางขนาดเล็ก แล้วแสดงค่าแต่ละค่าพร้อม row และคอลัมน์ของค่า
ลองเรียกใช้โปรแกรมเพื่อดูเซลล์ทั้งสี่รายการ
int[,] grid = { { 10, 20 }, { 30, 40 } };
for (int r = 0; r < grid.GetLength(0); r++)
{
for (int c = 0; c < grid.GetLength(1); c++)
{
Console.WriteLine("[" + r + "," + c + "] = " + grid[r, c]);
}
}สามมิติ
คุณสามารถเพิ่มมิติได้ด้วยการใส่จุลภาคมากขึ้น อาร์เรย์สามมิติใช้ [,,] และขนาดสามค่า
ลองนึกภาพว่าเป็นกองตารางหลายชั้น อาร์เรย์ลักษณะนี้พบได้น้อยกว่า แต่ใช้กฎเดียวกัน
int[,,] cube = new int[2, 2, 2];
cube[1, 1, 1] = 5;
Console.WriteLine(cube[1, 1, 1]); // 5อาร์เรย์แบบหยัก
อาร์เรย์แบบหยักคืออาร์เรย์ของอาร์เรย์ ซึ่งเขียนเป็น [][] ต่างจากตารางแบบสี่เหลี่ยมผืนผ้า แต่ละแถวสามารถมีความยาวแตกต่างกันได้
คุณเข้าถึงอาร์เรย์นี้ด้วยวงเล็บเหลี่ยมสองคู่ที่แยกจากกัน
int[][] jagged = new int[2][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5 };
Console.WriteLine(jagged[1][2]); // 5แบบสี่เหลี่ยมผืนผ้าเทียบกับแบบหยัก
อาร์เรย์แบบสี่เหลี่ยมผืนผ้า [,] มีแถวที่ยาวเท่ากันเสมอและจัดเก็บข้อมูลได้อย่างกระชับ ส่วนอาร์เรย์แบบหยัก [][] อนุญาตให้แต่ละแถวมีความยาวแตกต่างกัน
เลือกแบบสี่เหลี่ยมผืนผ้าสำหรับตารางจริง และเลือกแบบหยักเมื่อขนาดของแถวแตกต่างกันตามธรรมชาติ
int[][] rows = { new[] { 1 }, new[] { 2, 3, 4 } };
Console.WriteLine(rows[0].Length); // 1
Console.WriteLine(rows[1].Length); // 3การหาผลรวมของตาราง
คุณสามารถหาผลรวมของค่าทุกค่าในตารางได้ด้วยการบวกแต่ละเซลล์ภายในลูปซ้อนกัน
รูปแบบนี้ขยายใช้ได้กับแถวและคอลัมน์จำนวนเท่าใดก็ได้
int[,] grid = { { 1, 2 }, { 3, 4 } };
int total = 0;
foreach (int v in grid)
{
total += v;
}
Console.WriteLine(total); // 10แบบทดสอบสั้นๆ
ทดสอบความรู้เกี่ยวกับอาร์เรย์หลายมิติของคุณ
สรุปทบทวน
คุณได้เรียนรู้การสร้างตารางด้วย [,] การเข้าถึงเซลล์ด้วยดัชนีของ row และคอลัมน์ และการวัดขนาดด้วย GetLength
ลูปซ้อนกันจะเข้าถึงทุกเซลล์ จุลภาคเพิ่มเติมจะเพิ่มมิติ และอาร์เรย์แบบหยัก [][] ช่วยให้แต่ละแถวมีความยาวแตกต่างกันได้ ตอนนี้คุณสามารถจัดเก็บและประมวลผลข้อมูลแบบตารางใน C# ได้แล้ว
คำถามที่พบบ่อย
บทเรียน “อาร์เรย์หลายมิติ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “อาร์เรย์หลายมิติ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “อาร์เรย์หลายมิติ”
กริดและอาร์เรย์ที่มีแถวย่อยไม่เท่ากัน คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “อาร์เรย์หลายมิติ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ประกาศอาร์เรย์
- ดัชนีและความยาว
- วนซ้ำผ่านอาร์เรย์
- อาร์เรย์หลายมิติ