Lấy giá trị tối đa từ kiểu liệt kê là nhiệm vụ phổ biến mà các nhà phát triển gặp phải. Điều này là bắt buộc trong các tình huống mà bạn cần xác thực thông tin đầu vào của người dùng hoặc xử lý một số tài nguyên nhất định dựa trên giá trị enum. C# cung cấp một cách đơn giản để đạt được điều này bằng cách sử dụng lớp Enum và một chút LINQ.
Hãy cùng khám phá giải pháp giúp việc lấy giá trị tối đa của một bảng liệt kê dễ dàng như ăn bánh.
enum công khai MyEnum
{
Tùy chọn1 = 1,
Tùy chọn2 = 2,
Tùy chọn3 = 3
}
...
int công khai GetMaxEnumValue()
{
trả về Enum.GetValues(typeof(MyEnum)).Cast().Max();
}
Đoạn mã ngắn này thực hiện tất cả công việc lấy giá trị cao nhất trong enum. Nhưng làm thế nào nó hoạt động?
Đi sâu vào mã
`Enum.GetValues(typeof(MyEnum))` là phần quan trọng đầu tiên cần hiểu. Phương thức .NET tích hợp này trả về một Mảng chứa các giá trị của các hằng số trong một bảng liệt kê đã chỉ định. Kiểu liệt kê được truyền dưới dạng tham số cho phương thức bằng từ khóa `typeof`.
Khi chúng ta có mảng, chúng ta cần chuyển nó thành số nguyên. Việc này được thực hiện bằng cách sử dụng .Cast() là một phần của LINQ (Truy vấn tích hợp ngôn ngữ). LINQ là một tập hợp các kỹ thuật và phương pháp trong .NET cho phép chúng ta làm việc với dữ liệu theo cách trực quan và linh hoạt hơn.
Sau khi chuyển các giá trị thành số nguyên, việc lấy giá trị tối đa cũng đơn giản như gọi phương thức .Max(), một công cụ tuyệt vời khác do LINQ cung cấp. Phương thức này trả về giá trị lớn nhất trong tập hợp các giá trị int.
Tận dụng thư viện Enum và LINQ
Lớp Enum là một phần của không gian tên Hệ thống trong .NET và cung cấp một số phương thức tĩnh để làm việc với các bảng liệt kê. Đây là thư viện sử dụng khi bạn cần thực hiện bất kỳ thao tác nào liên quan đến kiểu enum.
Mặt khác, LINQ, một phần của namespace System.Linq, là một trong những tính năng mạnh mẽ nhất của C#. Nó cung cấp nhiều phương pháp khác nhau để xử lý các bộ sưu tập một cách hiệu quả, chẳng hạn như lấy giá trị tối đa, tối thiểu hoặc trung bình, sắp xếp và lọc dữ liệu.
Tìm hiểu thêm về PNV