Mảng trong C# có thể chứa các kiểu dữ liệu như số nguyên, số thực, chuỗi, đối tượng, v.v. Các phần tử trong mảng có thể được truy cập thông qua chỉ số, với chỉ số bắt đầu từ 0 (không).
Trước khi vào nghiên cứu mảng, bạn nên đặt những câu hỏi để nâng cao tính tư duy.
- Biến mảng là gì ?
- Tại sao dùng biến mảng ?
- Khi lập trình phần mềm không dùng biến mảng được hay không ?
Để khai báo một mảng trong C#, bạn có thể làm như sau:
Khai báo mảng và khởi tạo nó với một kích thước cụ thể:
int[] arr = new int[5]; // Mảng có 5 phần tử kiểu int
Khai báo mảng và khởi tạo giá trị ngay lập tức:
int[] arr = { 1, 2, 3, 4, 5 }; // Mảng có các giá trị 1, 2, 3, 4, 5string[] monhoc ;
string[] monhoc = new string[4];
int[] so= new int[4];
string[] monhoc = {"C++", "C#", "JAVA", "VB.NET"};
chỉ cần thêm [] vào sau kiểu biến là ra biến mảng.
int[] so = {10, 20, 30, 40};
* Nếu khai báo ở cách 1 thì đưa vào có gặp vấn đề gì không ?
string[] monhoc ;
monhoc = {"C++", "C#", "JAVA", "VB.NET"};
Để truy cập phần tử trong mảng, bạn sử dụng chỉ số (index) của phần tử đó:
int firstElement = arr[0]; // Truy cập phần tử đầu tiên (chỉ số 0)
Ví dụ về mảng đơn giản nhất:
Giả sử bạn có một mảng một chiều như sau:
int[] arr = { 10, 20, 30, 40, 50 };
Để truy cập phần tử tại vị trí nhất định, bạn sử dụng cú pháp arr[index], trong đó index là chỉ số của phần tử bạn muốn truy cập.
Truy cập phần tử đầu tiên (chỉ số 0):
Console.WriteLine(arr[0]); // Kết quả: 10
Truy cập phần tử thứ hai (chỉ số 1):
Console.WriteLine(arr[1]); // Kết quả: 20
Truy cập phần tử cuối cùng (chỉ số 4):
Console.WriteLine(arr[4]); // Kết quả: 50
Bạn có thể thay đổi giá trị của phần tử trong mảng thông qua chỉ số:
arr[2] = 10; // Thay đổi giá trị của phần tử thứ 3 (chỉ số 2) thành 10
Ví dụ 1: chạy thế nào ?
string[] monhoc = { "C++", "C#", "JAVA", "VB.NET" };
monhoc[5] = "PHP";
Bạn hãy copy code và chạy để trải nghiệm ví dụ mảng trên.
Ví dụ 2:
string[] monhoc1 = {"C++", "C#", "JAVA", "VB.NET"};
string[] monhoc2 = new string[4] {"C++", "C#", "JAVA", "VB.NET"};
* So sách 2 cách khai báo mảng trên
Ví dụ 3:
string[] monhoc = new string[4];
// cách 1 nạp giá trị vào mảng
monhoc[0] = "a";
monhoc[1] = "b";
monhoc[2] = "c";
monhoc[3] = "d";
// cách 2 nạp giá trị vào mảng
monhoc.SetValue("a", 0);
monhoc.SetValue("b", 1);
monhoc.SetValue("c", 2);
monhoc.SetValue("d", 3);
string[] monhoc = {"C++", "C#", "JAVA", "VB.NET"};
int sophantu = monhoc .Length;
Console.WriteLine(sophantu.ToString() );
string[] monhoc = {"C++", "C#", "JAVA", "VB.NET"};
int sophantu = monhoc .Length;
for(int i=0;i<sophantu;i++)
{
Console.WriteLine(monhoc[i]);
}
foreach (var item in monhoc)
{
Console.WriteLine(item);
}
Để lặp qua tất cả các phần tử trong mảng, bạn có thể sử dụng vòng lặp for hoặc foreach:
// Sử dụng vòng lặp for
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
// Sử dụng vòng lặp foreach
foreach (int element in arr)
{
Console.WriteLine(element);
}
Mảng 2 chiều trong C#
int[,] GiaTriMang=
{
{1, 2,4},
{3, 4,5},
{5, 6,2}
};
// Lấy giá trị mảng ra
Console.WriteLine(GiaTriMang[0, 1]);
Console.WriteLine(GiaTriMang[0, 2]);
C# hỗ trợ mảng đa chiều, ví dụ như mảng 2 chiều (ma trận):
int[,] matrix = new int[3, 3]; // Mảng 2 chiều 3x3
// Khởi tạo mảng 2 chiều
int[,] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
// Truy cập phần tử trong mảng 2 chiều
Console.WriteLine(matrix[0, 0]); // In ra 1
Mảng jagged là mảng có các phần tử là các mảng, và các mảng con có thể có kích thước khác nhau.
int[][] jaggedArray = new int[3][]; // Mảng jagged với 3 phần tử
// Khởi tạo các mảng con
jaggedArray[0] = new int[] { 1, 2, 3 };
jaggedArray[1] = new int[] { 4, 5 };
jaggedArray[2] = new int[] { 6, 7, 8, 9 };
// Truy cập phần tử
Console.WriteLine(jaggedArray[1][1]); // In ra 5
Array.Length: Trả về số lượng phần tử trong mảng.
int length = arr.Length;
Array.Sort: Sắp xếp mảng.
Array.Sort(arr); // Sắp xếp mảng arr theo thứ tự tăng dần
Array.Reverse: Đảo ngược mảng.
Array.Reverse(arr); // Đảo ngược mảng arr
string[] monhoc1 = { "C++", "C#", "JAVA", "VB.NET" };
string[] monhoc2 = { "jquery", "html" };
object[] obj = new object[2] { monhoc1, monhoc2 };
string[] arr_1 =(string[])obj[0];
string[] arr_2 =(string[])obj[1];
foreach (var gt in arr_1)
{
Console.WriteLine(gt);
}
Nếu bạn hiểu bài này nó là con đường giúp học lập trình hướng đối tượng nhanh sau này.
Tóm lại
Mảng trong C# là một công cụ mạnh mẽ để làm việc với các tập hợp dữ liệu có cùng kiểu. Bạn có thể dễ dàng khai báo, truy cập, thay đổi giá trị của phần tử trong mảng, và thao tác với mảng đa chiều hoặc mảng jagged tùy theo nhu cầu của mình.
Tìm kiếm:
Trong C#, biến mảng là một loại biến có thể lưu trữ nhiều giá trị cùng một lúc