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

อาร์เรย์หลายมิติ

กริดและอาร์เรย์ที่มีแถวย่อยไม่เท่ากัน

อาร์เรย์หลายมิติ เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ประกาศอาร์เรย์
  2. ดัชนีและความยาว
  3. วนซ้ำผ่านอาร์เรย์
  4. อาร์เรย์หลายมิติ
← กลับไปที่ C# Academy