Two-Dimensional Array (2D Array) เป็นอาร์เรย์ของอาร์เรย์ จัดเก็บในรูปตาราง แถวและคอลัมน์
Syntax
// ประกาศ
int[,] arrayName;
// ประกาศและกำหนดขนาด
int[,] arr = new int[3, 2]; // 3 แถว, 2 คอลัมน์
// ประกาศและกำหนดค่าเริ่มต้น
int[,] arr = new int[3, 2]
{
{0, 0},
{1, 2},
{2, 4}
};
โค้ดตัวอย่างเต็ม
using System;
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
// 3 แถว, 2 คอลัมน์
int[,] a = new int[3, 2]
{
{0, 0},
{1, 2},
{2, 4}
};
// เข้าถึง: a[row, column]
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i, j]);
}
}
Console.ReadKey();
}
}
}
ผลลัพธ์
a[0,0] = 0 a[0,1] = 0 a[1,0] = 1 a[1,1] = 2 a[2,0] = 2 a[2,1] = 4
คุณสมบัติสำคัญ
- เก็บในหน่วยความจำแบบ Contiguous (ต่อเนื่อง)
- ขนาดคงที่ (Fixed Size)
- ใช้
GetLength(0)= จำนวนแถว,GetLength(1)= จำนวนคอลัมน์ Rank= 2,Length= Total Elements (6)
2D Array vs Jagged Array
| คุณสมบัติ | 2D Array (Rectangular) | Jagged Array |
|---|---|---|
| Syntax | int[,] | int[][] |
| โครงสร้าง | ตารางสี่เหลี่ยม | อาร์เรย์ของอาร์เรย์ (แถวแต่ละแถวยาวต่างกันได้) |
| Memory | Contiguous Block | Scattered (Array of References) |
| Performance | ดีกว่า (Cache Friendly) | ช้ากว่าเล็กน้อย |