Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

พิมพ์อาร์เรย์ 2 มิติ (Matrix) ใน C#

การแสดงอาร์เรย์ 2 มิติ (Matrix) ใน C#

อาร์เรย์ 2 มิติใน C# ประกาศด้วย int[,] ใช้ดัชนี 2 ค่า [row, col] เหมาะสำหรับข้อมูลแบบตาราง เมทริกซ์

ตัวอย่าง: รับค่าและแสดง Matrix

using System;

class Demo
{
    static void Main()
    {
        int m, n, i, j;
        
        Console.Write("ป้อนจำนวนแถว (rows): ");
        m = int.Parse(Console.ReadLine());
        
        Console.Write("ป้อนจำนวนคอลัมน์ (cols): ");
        n = int.Parse(Console.ReadLine());

        int[,] arr = new int[m, n];

        Console.WriteLine("ป้อนค่าองค์ประกอบของ Matrix:");
        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {
                Console.Write($"arr[{i},{j}] = ");
                arr[i, j] = int.Parse(Console.ReadLine());
            }
        }

        Console.WriteLine("\nMatrix ที่ป้อน:");
        for (i = 0; i < m; i++)
        {
            for (j = 0; j < n; j++)
            {
                Console.Write($"{arr[i, j]}\t");
            }
            Console.WriteLine(); // ขึ้นบรรทัดใหม่หลังแต่ละแถว
        }
    }
}

ตัวอย่างการทำงาน

ป้อนจำนวนแถว (rows): 2
ป้อนจำนวนคอลัมน์ (cols): 3
ป้อนค่าองค์ประกอบของ Matrix:
arr[0,0] = 1
arr[0,1] = 2
arr[0,2] = 3
arr[1,0] = 4
arr[1,1] = 5
arr[1,2] = 6

Matrix ที่ป้อน:
1       2       3
4       5       6

คุณสมบัติสำคัญของอาร์เรย์ 2 มิติ

Property/Methodคำอธิบาย
GetLength(0)จำนวนแถว (Rank 0)
GetLength(1)จำนวนคอลัมน์ (Rank 1)
Lengthจำนวนองค์ประกอบทั้งหมด (rows × cols)
Rankจำนวนมิติ (จะได้ 2)

การเข้าถึงแบบ foreach (C# 5+)


// วนลูปทุกค่า (ไม่ได้ดัชนี)
foreach (int val in arr)
{
    Console.Write(val + " ");
}

// ต้องการดัชนี ใช้ for ธรรมดา
for (int i = 0; i < arr.GetLength(0); i++)
{
    for (int j = 0; j < arr.GetLength(1); j++)
    {
        Console.Write(arr[i, j] + " ");
    }
}

การสร้างและกำหนดค่าเริ่มต้น (Array Initializer)


// ระบุค่าโดยตรง
int[,] matrix = 
{
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};

// หรือ
int[,] matrix2 = new int[3, 3] 
{
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};

Jagged Array (อาร์เรย์แจ็กเก็ด) - ทางเลือกอื่น


// อาร์เรย์ของอาร์เรย์ - แต่ละแถวมีความยาวต่างกันได้
int[][] jagged = new int[3][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5, 6 };
jagged[2] = new int[] { 7 };

// เข้าถึง: jagged[row][col]