×

Sử dụng list comprehension để xử lý danh sách trong C#

Trong ngôn ngữ lập trình C#, việc xử lý danh sách là một công việc rất phổ biến, và một trong những cách hiệu quả nhất để thực hiện các thao tác trên danh sách là sử dụng cú pháp list comprehension. Dù thuật ngữ "list comprehension" không được sử dụng nhiều trong C# so với Python, nhưng ý tưởng tương tự có thể được thực hiện thông qua LINQ (Language Integrated Query). LINQ cung cấp các phương pháp dễ đọc và mạnh mẽ để truy vấn và xử lý dữ liệu.

LINQ là gì?

LINQ là một bộ các tính năng tích hợp trong C# cho phép truy vấn các bộ sưu tập dữ liệu bằng cách sử dụng các cú pháp truy vấn tương tự SQL. Cú pháp này có thể được sử dụng để tìm kiếm, sắp xếp, gộp nhóm, và thực hiện nhiều thao tác khác trên các tập hợp dữ liệu.

Cách sử dụng LINQ để xử lý danh sách

Để sử dụng LINQ trong C#, bạn cần import không gian tên System.Linq. Dưới đây là một số ví dụ cụ thể về cách sử dụng LINQ để xử lý danh sách.

1. Lọc danh sách

Bạn có thể dễ dàng lọc các phần tử trong danh sách bằng cách sử dụng phương thức Where. Ví dụ, giả sử bạn có một danh sách các số và bạn muốn lấy tất cả các số lớn hơn 5:

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main()
    {
        List<int> numbers = new List<int> { 1, 3, 5, 7, 9 };
        var filteredNumbers = numbers.Where(n => n > 5).ToList();

        Console.WriteLine(string.Join(", ", filteredNumbers)); // Output: 7, 9
    }
}

2. Biểu diễn danh sách dưới một hình thức khác

Phương thức Select trong LINQ tương tự với việc duyệt qua các phần tử trong danh sách và áp dụng một biểu thức cho từng phần tử. Ví dụ:

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
        var squaredNumbers = numbers.Select(n => n * n).ToList();

        Console.WriteLine(string.Join(", ", squaredNumbers)); // Output: 1, 4, 9, 16, 25
    }
}

3. Sắp xếp danh sách

Bạn có thể sắp xếp danh sách bằng cách sử dụng phương thức OrderBy. Ví dụ:

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main()
    {
        List<string> fruits = new List<string> { "apple", "orange", "banana", "grape" };
        var sortedFruits = fruits.OrderBy(f => f).ToList();

        Console.WriteLine(string.Join(", ", sortedFruits)); // Output: apple, banana, grape, orange
    }
}

4. Chuyển đổi danh sách phức tạp

Khi làm việc với các đối tượng phức tạp hơn, LINQ cũng rất mạnh mẽ. Ví dụ, giả sử bạn có một danh sách các đối tượng Person và bạn muốn lấy tên của tất cả những người trên 18 tuổi:

using System;
using System.Collections.Generic;
using System.Linq;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class Program
{
    public static void Main()
    {
        List<Person> people = new List<Person>
        {
            new Person { Name = "John", Age = 28 },
            new Person { Name = "Jane", Age = 17 },
            new Person { Name = "Tom", Age = 32 }
        };

        var adults = people.Where(p => p.Age > 18).Select(p => p.Name).ToList();

        Console.WriteLine(string.Join(", ", adults)); // Output: John, Tom
    }
}

Kết luận

Sử dụng LINQ trong C# giúp mã nguồn trở nên rõ ràng, ngắn gọn và dễ bảo trì hơn. Linh hoạt và mạnh mẽ, LINQ không chỉ dễ học mà còn rất hữu ích cho việc xử lý các tập hợp dữ liệu phức tạp. Việc nắm vững các phương thức cơ bản như Where, Select, OrderBy sẽ giúp bạn xử lý danh sách một cách hiệu quả và thẩm mỹ trong các dự án lập trình của mình.

Comments