Mảng (Array) trong C# – Phần 4
1. Mảng trong C# là gì?
Mảng (Array) trong C# là một tập hợp các phần tử có cùng kiểu dữ liệu, được lưu trữ liên tiếp trong bộ nhớ.
Lợi ích của mảng:
✅ Lưu trữ nhiều giá trị trong một biến.
✅ Truy xuất dữ liệu nhanh bằng chỉ số (index).
✅ Dễ dàng duyệt qua các phần tử bằng vòng lặp.
2. Khai báo và khởi tạo mảng
2.1. Cú pháp khai báo mảng
<kiểu dữ liệu>[] <tên mảng>;
2.2. Khai báo và khởi tạo mảng
int[] numbers = new int[5]; // Mảng có 5 phần tử
2.3. Gán giá trị cho mảng
numbers[0] = 10; // Gán giá trị 10 cho phần tử đầu tiên
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
2.4. Khởi tạo mảng trực tiếp
int[] numbers = { 10, 20, 30, 40, 50 };
3. Truy xuất phần tử trong mảng
Các phần tử trong mảng được đánh số từ 0.
using System;
class Program
{
static void Main()
{
int[] numbers = { 10, 20, 30, 40, 50 };
Console.WriteLine("Phần tử đầu tiên: " + numbers[0]);
Console.WriteLine("Phần tử thứ ba: " + numbers[2]);
}
}
⏳ Kết quả:
Phần tử đầu tiên: 10
Phần tử thứ ba: 30
4. Duyệt mảng bằng vòng lặp
4.1. Duyệt mảng bằng vòng lặp for
using System;
class Program
{
static void Main()
{
int[] numbers = { 10, 20, 30, 40, 50 };
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine("Phần tử thứ " + (i + 1) + ": " + numbers[i]);
}
}
}
⏳ Kết quả:
Phần tử thứ 1: 10
Phần tử thứ 2: 20
Phần tử thứ 3: 30
Phần tử thứ 4: 40
Phần tử thứ 5: 50
4.2. Duyệt mảng bằng vòng lặp foreach
using System;
class Program
{
static void Main()
{
int[] numbers = { 10, 20, 30, 40, 50 };
foreach (int num in numbers)
{
Console.WriteLine("Giá trị: " + num);
}
}
}
🔹 Ghi chú: foreach không cần dùng chỉ số, phù hợp để duyệt toàn bộ mảng.
5. Mảng nhiều chiều (Multidimensional Array)
Mảng nhiều chiều giúp lưu trữ dữ liệu dạng bảng.
5.1. Khai báo mảng 2 chiều
int[,] matrix = new int[2, 3]; // Mảng 2 hàng, 3 cột
5.2. Gán giá trị cho mảng 2 chiều
int[,] matrix = {
{1, 2, 3},
{4, 5, 6}
};
5.3. Truy xuất phần tử trong mảng 2 chiều
using System;
class Program
{
static void Main()
{
int[,] matrix = {
{1, 2, 3},
{4, 5, 6}
};
Console.WriteLine("Giá trị tại hàng 2, cột 3: " + matrix[1, 2]);
}
}
⏳ Kết quả:
Giá trị tại hàng 2, cột 3: 6
5.4. Duyệt mảng 2 chiều bằng vòng lặp
using System;
class Program
{
static void Main()
{
int[,] matrix = {
{1, 2, 3},
{4, 5, 6}
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
}
⏳ Kết quả:
1 2 3
4 5 6
6. Mảng dạng danh sách (List)
Mảng có kích thước cố định, nhưng List<T> trong System.Collections.Generic có thể thay đổi kích thước linh hoạt.
6.1. Khai báo danh sách
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 10, 20, 30 };
numbers.Add(40); // Thêm phần tử
numbers.Remove(20); // Xóa phần tử
numbers[0] = 15; // Cập nhật giá trị
foreach (int num in numbers)
{
Console.WriteLine(num);
}
}
}
⏳ Kết quả:
15
30
40
7. Tìm kiếm phần tử trong mảng
7.1. Kiểm tra phần tử có tồn tại trong mảng
using System;
class Program
{
static void Main()
{
int[] numbers = { 10, 20, 30, 40, 50 };
int search = 30;
bool found = Array.Exists(numbers, element => element == search);
Console.WriteLine("Tồn tại số 30: " + found);
}
}
⏳ Kết quả:
Tồn tại số 30: True
8. Sắp xếp mảng trong C#
C# hỗ trợ sắp xếp mảng bằng Array.Sort().
Ví dụ: Sắp xếp mảng tăng dần
using System;
class Program
{
static void Main()
{
int[] numbers = { 50, 10, 40, 20, 30 };
Array.Sort(numbers);
foreach (int num in numbers)
{
Console.Write(num + " ");
}
}
}
⏳ Kết quả:
10 20 30 40 50
9. Tóm tắt bài học
✅ Mảng trong C# – Lưu trữ nhiều phần tử cùng kiểu dữ liệu.
✅ Duyệt mảng – Dùng for hoặc foreach.
✅ Mảng nhiều chiều – Lưu dữ liệu dạng bảng.
✅ List – Linh hoạt hơn mảng thường.
✅ Tìm kiếm, sắp xếp mảng – Dùng Array.Exists(), Array.Sort().
💡 Bài tiếp theo:
👉 Chuỗi (String) trong C# – Phần 5 🚀