Sử dụng mảng trong C#
Sử dụng mảng trong C#
Sử dụng mảng là một phương pháp cơ bản trong lập trình C#. Mảng là một tập hợp gồm các phần tử có cùng kiểu dữ liệu và được xác định trước khi chương trình thực thi.
Vậy cách truy cập mảng như thế nào để quản lý được các phần tử? Hãy cùng với R2S tìm hiểu nhé!
Mảng trong C# là gì?
Mảng trong C# là một tập hợp gồm các phần tử có cùng kiểu dữ liệu và được xác định trước khi chương trình thực thi. Mảng được truy cập thông qua chỉ số của từng phần tử và có thể sử dụng vòng lặp để thao tác với mảng.
Sử dụng mảng trong C# giúp bạn có khả năng quản lý tập hợp các phần tử có cùng kiểu dữ liệu.
Mỗi phần tử của mảng có thể được truy cập thông qua chỉ số với phần tử đầu tiên có chỉ số 0 và phần tử cuối cùng có chỉ số n-1 (trong đó n là số lượng phần tử trong mảng).
Mảng là một công cụ hữu ích trong việc thao tác trên dãy số, quản lý danh sách nhân viên và hàng hoá, và trong một số trường hợp khác…
Phân loại mảng – Sử dụng từng loại mảng trong C#
Dựa vào cách mảng lưu trữ các phần tử, mảng có thể được phân thành 2 loại chính đó là:
- Mảng một chiều (Single-dimensional Arrays)
- Mảng đa chiều (Multi-dimensional Arrays).
Mảng một chiều
Mảng một chiều trong lập trình là một tập hợp các phần tử của cùng một kiểu dữ liệu được lưu trữ trên một dòng.
Ví dụ, mảng một chiều các số nguyên có thể được định nghĩa bằng cách cung cấp tên mảng, kiểu dữ liệu và kích thước của mảng hoặc cung cấp giá trị ban đầu cho các phần tử trong mảng.
Có hai cách sau để định nghĩa mảng một chiều mà bạn cần biết đó là:
// Cách 1
datatype[] arrayName; // Khai báo tên mảng và kiểu dữ liệu
arrayName = new datatype[length]; // Tạo mảng
// Cách 2
datatype[] arrayName = new datatype[length];
Ví dụ định nghĩa mảng tên intArray này có 6 phần tử
int[] intArray = new int[6];
Mảng đa chiều – Sử dụng mảng trong C#
Mảng đa chiều trong lập trình cho phép lưu trữ dữ liệu trên nhiều dòng, khác với mảng một chiều. Kích thước của mảng đa chiều được xác định bởi số dòng và số cột, tương tự như một bảng tính trong Microsoft Excel.
Mảng đa chiều được phân thành hai loại, bao gồm Mảng chữ nhật (Rectangular Array) với số cột trên mỗi dòng giống nhau. Ví dụ, hình dưới đây là một mảng chữ nhật với 12 phần tử.
Cú pháp khai báo mảng Rectangular Array
datatype[,] arrayName = new datatype[rows , columns];
Jagged Array tương tự Rectangular Array ngoại trừ số cột trên mỗi dòng có thể khác nhau.
Ví dụ minh họa bằng hình ảnh dưới đây:
Đoạn code sau giải thích về việc sử dụng Jagged Array để lưu tên của các công ty
class JaggedArrayExample
{
static void Main (string[] args)
{
string[][] jArray = new string[2][];
jArray[0] = new string[] {"Intel", "Google"};
jArray[1] = new string[] {"Apple", "Microsoft", "Oracle"};
// jArray.GetLength(0) là số dòng
for (int i = 0; i < jArray.GetLength(0); i++)
{
// jArray[i].GetLength(0) là số cột
for (int j = 0; j < jArray[i].GetLength(0); j++)
{
Console.Write(jArray [i][j] + ", ");
}
Console.WriteLine();
}
Console.ReadLine();
}
}
Sử dụng foreach để duyệt mảng trong C#
Để duyệt mảng trong C#, ta có thể sử dụng vòng lặp foreach. Vòng lặp này cho phép duyệt từng phần tử trong mảng một cách dễ dàng hơn so với sử dụng vòng lặp for thông thường.
foreach(datatype variable in arrayName)
{
// Xử lý
}
Sử dụng mảng trong C# – Lớp Array
Lớp Array trong C# được sử dụng để làm việc với mảng trong ngôn ngữ lập trình C#.
Nó cung cấp nhiều thuộc tính và phương thức để quản lý mảng, bao gồm các phương thức để tạo, sao chép, chèn, xoá, sắp xếp và duyệt mảng. Để sử dụng lớp Array, ta cần khởi tạo đối tượng của lớp này bằng cách sử dụng từ khóa `new`. Sau đó, ta có thể truy cập các thành phần của mảng bằng cách sử dụng chỉ số của chúng.
Phương thức | Giải thích |
SetValue(value, position) | Thiết lập giá trị cho phần tử dựa vào vị trí (position) |
GetValue(position) | Lấy giá trị của phần tử |
IndexOf(Array, element) | Tìm kiếm một phần tử (element) |
GetLength() | Cho biết số lượng phần tử trong mảng |
Reverse(Array) | Đảo ngược thứ tự các phần tử |
Sort(Array) | Sắp xếp các phần tử của mảng |
Ví dụ về cách sử dụng một số phương thức của lớp Array
class UsingArrayExample
{
static void Main(string[] args)
{
int[] intA = {3, 7, 1, 4, 2, 0, 11};
int[] tempA = intA;
Console.Write("Elements of array: ");
foreach (int i in intA)
{
Console.Write(i + " ");
}
Console.WriteLine();
// Đảo mảng
Array.Reverse(tempA);
Console.Write("Array after reversed: ");
foreach (int i in tempA)
{
Console.Write(i + " ");
}
Console.WriteLine();
// Sắp xếp mảng
Array.Sort(intA);
Console.Write("Array after sorted: ");
foreach (int i in intA)
{
Console.Write(i + " ");
}
Console.ReadLine();
}
}
}
Sử dụng mảng trong C# – Bài tập thực hành
- Bài thực hành số 1: Vêu cầu viết một chương trình trong C++ để tạo một mảng một chiều các số nguyên chứa giá trị ngẫu nhiên, sắp xếp các thành phần trong mảng theo thứ tự tăng dần hoặc giảm dần, và cho phép người dùng lựa chọn cách sắp xếp. Để giải quyết bài toán này, ta có thể sử dụng lớp Array của C++ để tạo và quản lý các phần tử trong mảng, sau đó sử dụng thuật toán sắp xếp để sắp xếp mảng theo thứ tự tăng hoặc giảm dần. Cuối cùng, ta sẽ hiển thị kết quả sắp xếp cho người dùng
- Bài thực hành số 2: Yêu cầu sử dụng mảng hai chiều để tạo 3 mảng có tên lần lượt là HCM, DN, BD, lưu trữ điều kiện khí hậu của các thành phố tương ứng. Ta sẽ thêm ít nhất 2 dòng thông tin trong mỗi mảng, bao gồm thông tin về ngày, nhiệt độ C và độ ẩm.
- Bài thực hành số 3: Yêu cầu viết chương trình tạo một mảng hai chiều không cùng kích thước. Số dòng của mảng được cố định là 5, còn từng dòng có kích thước bằng giá trị của dòng tương ứng. Ví dụ, dòng đầu tiên có kích thước là 1 (tức là có 1 cột), dòng thứ hai có kích thước là 2 (tức là có 2 cột), và cứ tiếp tục như vậy cho đến dòng thứ năm, có kích thước là 5 (tức là có 5 cột). Các giá trị của ma trận phát sinh ngẫu nhiên. Sau đó, chương trình sẽ xuất kết quả của ma trận theo kiểu a[i][j] = <giá trị aij>.
Kết luận
Sử dụng mảng trong C# là một phương pháp quan trọng mà người học ngôn ngữ lập trình này cần biết. Mong là bài viết trên đây đã mang đến cho bạn những thông tin hữu ích về mảng một chiều, mảng đa chiều và cách sử dụng foreach, lớp array với mảng nhé.
Bài viết gốc được đăng tại: giasutinhoc.vn