C# hỗ trợ mảng đa chiều. Mảng đa chiều còn gọi là mảng hình chữ nhật (rectangular array). Khai báo mảng 2 chiều kiểu string:
string[,] names;
Mảng 2 chiều có thể hình dung như một bảng với x hàng và y cột.
Khởi tạo
int[,] a = new int[4, 4]
{
{ 0, 1, 2, 3 }, // hàng 0
{ 4, 5, 6, 7 }, // hàng 1
{ 8, 9, 10, 11 }, // hàng 2
{ 12, 13, 14, 15 } // hàng 3
};
Ví dụ
using System;
namespace Program
{
class Demo
{
static void Main(string[] args)
{
// Mảng 5 hàng, 2 cột
int[,] a = new int[5, 2]
{
{ 0, 0 }, { 1, 2 }, { 2, 4 }, { 3, 6 }, { 4, 8 }
};
int i, j;
// Xuất từng phần tử
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i, j]);
}
Console.ReadKey();
}
}
}
Kết quả
a[0,0] = 0 a[0,1] = 0 a[1,0] = 1 a[1,1] = 2 a[2,0] = 2 a[2,1] = 4 a[3,0] = 3 a[3,1] = 6 a[4,0] = 4 a[4,1] = 8
Mảng đa chiều vs Mảng răng cưa
| Đặc điểm | Mảng đa chiều (Rectangular) | Mảng răng cưa (Jagged) |
|---|---|---|
| Cú pháp | int[,] | int[][] |
| Bộ nhớ | Liên tục, một khối | Không liên tục, mảng con riêng |
| Kích thước hàng | Cố định, tất cả hàng bằng nhau | Mỗi hàng khác nhau được |
| Truy cập | a[i, j] | a[i][j] |
| Hiệu suất | Tốt hơn (cache friendly) | Linh hoạt hơn |