Bài tập C#

Phân loại dữ liệu bằng pattern matching trong C#

Trong bài học này, bạn sẽ phân loại các giá trị thuộc nhiều kiểu khác nhau bằng các mẫu kiểu, mẫu so sánh và mẫu thuộc tính.

Giới thiệu

Với pattern matching, bạn có thể kết hợp kiểm tra kiểu, kiểm tra giá trị và lấy dữ liệu ra trong cùng một biểu thức. Bài tập này xây dựng một hàm phân loại nhận vào bất kỳ giá trị nào và trả về mô tả phù hợp.

Mẫu int and >= 18 khớp với số nguyên từ 18 trở lên. Mẫu string { Length: 0 } khớp với chuỗi rỗng, sau khi đã xác nhận giá trị thực sự là chuỗi. Mẫu string text khớp với mọi chuỗi còn lại và lấy giá trị ra biến text. Vì "CSharp" có 6 ký tự, kết quả là text(6).

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

C#
Chạy code →
Program.cs
using System;
class Program
{
    static string Classify(object? value) => value switch
    {
        int and >= 18 => "adult age", string { Length: 0 } => "empty text",
        string text => $"text({text.Length})", null => "null", _ => "other"
    };
    static void Main() => Console.WriteLine(Classify("CSharp"));
}
Kết quả khi chạy
text(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