[C# cơ bản] – Mảng 2 chiều (Two-Dimensional Arrays)

Như C++ và Java, trong ngôn ngữ C# có hỗ trợ mảng nhiều chiều. Trong đó, phổ biến và thường được sử dụng nhiều nhất là mảng 2 chiều. Mảng 2 chiều được lưu trữ theo các hàng và cột, giống như ma trận trong toán học.

Mảng 2 chiều: int[,] mang2Chieu = new int[2, 2];

Mảng 3 chiều: int[, ,] mang3Chieu = new int[1, 2, 3];

1. Cú pháp khai báo

Cách 1: khai báo tên mảng

Khai báo mảng 2 chiều có kiểu nguyên: int[,] mangNguyen = new int[3,4];

Khai báo mảng 2 chiều có kiểu chuỗi: string[,] mangChuoi = new string[3,2];

Cách 2: khai báo và khởi tạo các giá trị cho mảng

Mảng 2 chiều có kiểu nguyên: int[,] mangNguyen = new int[2,2]{ { 1, 2 }, { 3, 4 }};

Mảng 2 chiều có kiểu chuỗi: string[,] mangChuoi = new string[3,2]{ { “a”, “b” }, { “c”, “d” }, { “e”, “f” } };

Khai báo mảng không xác định số hàng, cột: int[,] mangNguyen = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

2. Cấu trúc lưu trữ

Một mảng 2 chiều có thể được xem như 1 bảng với m hàng và n cột.

Mảng 2 chiều trong C#
Hình 1. Cấu trúc lưu trữ mảng 2 chiều

Ví dụ: khai báo và khởi tạo mảng gồm 3 hàng, 4 cột:

int[,] a = new int[3,4]{         //m= 3, n = 4

       {0, 1, 2, 3},

       {4, 5, 6, 7},

       {8, 9, 10, 11},

};

Lưu trữ mảng 2 chiều
Hình 2. Lưu trữ mảng 2 chiều trong bộ nhớ

Chú ý: vị trí lưu trữ trong bộ nhớ sẽ được tính từ 0.

3. Truy cập phần tử trong mảng 2 chiều

Để truy cập phần tử xác định của mảng 2 chiều, cần chỉ rõ tên mảng[vị trí hàng, vị trí cột]

Xét ví dụ ở hình 2:

int phanTu00 = a[0,0];    //giaTri = 0

int phanTu11 = a[1,1];    //giaTri = 5

int phanTu23 = a[2,3];    //giaTri = 11

4. Ví dụ

Hình 3. In danh sách mảng 2 chiều

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.