C# cơ bản

Mảng trong C#

Trong bài học này, bạn sẽ tạo, đọc, thay đổi, duyệt và sắp xếp mảng trong C#, kể cả mảng hai chiều.

Giới thiệu

Mảng (array) lưu một số lượng cố định các giá trị cùng kiểu. Mỗi phần tử được truy cập qua chỉ số (index) bắt đầu từ 0. Sau khi tạo, bạn có thể thay đổi giá trị của từng phần tử nhưng không thể thay đổi độ dài của mảng.

Thuộc tính Length cho biết số phần tử, còn scores[^1] là cách viết ngắn gọn để lấy phần tử cuối cùng. Vòng lặp foreach duyệt qua mọi phần tử để tính tổng và trung bình. Array.Sort sắp xếp mảng ngay trên chính nó. Mảng tạo bằng new int[3] có sẵn các giá trị 0, còn kiểu int[,] tạo một mảng hai chiều truy cập theo hàng và cột.

Xem cách hoạt động

Nhấp vào một ô hoặc kéo thanh trượt để chọn chỉ số. Chèn hoặc xóa để thấy vì sao mọi phần tử phía sau phải dịch chuyển.

Ví dụ C# chạy được

C#
Chạy code →
Program.cs
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        // An array has a fixed length set when it is created.
        int[] scores = { 72, 95, 88, 64 };
        Console.WriteLine($"Length: {scores.Length}");
        Console.WriteLine($"First: {scores[0]}, last: {scores[^1]}");

        scores[3] = 70;  // elements can be changed, the length cannot

        int sum = 0;
        foreach (int score in scores)
        {
            sum += score;
        }
        Console.WriteLine($"Sum: {sum}, average: {sum / (double)scores.Length}");

        // Array.Sort sorts in place; string.Join prints the elements.
        Array.Sort(scores);
        Console.WriteLine($"Sorted: {string.Join(", ", scores)}");
        Console.WriteLine($"Max: {scores.Max()}");

        // new int[3] creates an array of zeros.
        int[] counts = new int[3];
        counts[1] = 5;
        Console.WriteLine($"Counts: {string.Join(" ", counts)}");

        // A 2D array is indexed by row and column.
        int[,] grid = { { 1, 2, 3 }, { 4, 5, 6 } };
        Console.WriteLine($"grid[1, 2] = {grid[1, 2]}");
    }
}
Kết quả khi chạy
Length: 4
First: 72, last: 64
Sum: 325, average: 81.25
Sorted: 70, 72, 88, 95
Max: 95
Counts: 0 5 0
grid[1, 2] = 6

Luyện tập với trình gỡ lỗi

Đặt breakpoint ở một phép gán hoặc điều kiện quan trọng, bấm Debug và xem giá trị các biến cục bộ (local variable) trước khi bước sang dòng tiếp theo.

Luyện tập với thử thách

Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.

Tất cả thử thách