การแสดงอาร์เรย์ 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]