
Sử dụng Enumerable.Max
return sourceArray.Max();
Nếu chúng ta có một mảng string, output đầu tiên sẽ theo thứ tự bảng chữ cái. Có nghĩa là phương thức này không chỉ hoạt động với các mảng int mà còn với bất kỳ loại đối tượng nào triển khai interface System.IComperable.
Sử dụng OrderByDescending
return sourceArray.OrderByDescending(x => x).First();
Khác với cách tiếp cận Enumerable.Max, nó yêu cầu một biểu thức lambda làm tham số cho thuộc tính nào để so sánh.
Phương thức OrderByDescending trả về thứ tự giảm dần. Dựa trên điều này, chúng ta chỉ cần gọi First() để lấy phần tử lớn nhất hay phần tử đầu tiên.
Enumerable.MaxBy
return sourceArray.MaxBy(x => x);
Với phương thức này, chúng ta không cần phải sắp xếp thứ tự mảng của mình và sau đó trả về phần tử đầu tiên. Tất cả những gì chúng ta phải làm là gọi phương thức truyền biểu thức lambda của chúng ta dưới dạng tham số, cho biết thuộc tính nào chúng ta muốn so sánh.
return sourceArray.MinBy(x => x);
Sử dụng câu lệnh for
public int GetLargestElementUsingFor(int[] sourceArray)
{
int maxElement = sourceArray[0];
for (int index = 1; index < sourceArray.Length; index++)
{
if (sourceArray[index] > maxElement)
maxElement = sourceArray[index];
}
return maxElement;
}
Để tìm phần tử tối đa theo cách thủ công, trước tiên, chúng ta cần khởi tạo biến maxElement và gán cho nó bằng phần tử đầu tiên của mảng, tức là ban đầu, ta chỉ định cho phần tử đầu tiên là lớn nhất.
Sau đó, lặp lại việc kiểm tra mảng nếu mỗi phần tử lớn hơn giá trị maxElement. Khi phần tử lớn hơn, chúng ta nên gán giá trị của nó cho maxElement.
Khi kết thúc vòng lặp, chúng ta chỉ cần trả về biến maxElement.
Lời kết
Sau khi áp dụng Benchmark, ta thấy cách nhanh nhất để tìm ra giá trị lớn nhất sẽ lần lượt như sau: câu lệnh for, Enumerable.Max, MaxBy, OrderByDescending.
Mong bài viết hữu ích, chúc các bạn thành công!Hieu Ho.