Ngôn ngữ LINQ - ElementAtOrDefault

Phương thức ElementAtOrDefault trong LINQ

Giống như phương thức ElementAt, phương thức ElementAtOrDefault cũng trả về một phần tử theo chỉ mục đã chỉ định trong danh sách.

Tuy nhiên nếu chỉ mục được chỉ định nằm ngoài phạm vi của danh sách thì nó sẽ trả về giá trị mặc định thay vì ném ra ngoại lệ "Index out of range" như phương thức ElementAt.

Ví dụ sau đây minh họa phương thức ElementAtOrDefault trên danh sách kiểu nguyên thủy.

IList<int> intList = new List<int>() { 10, 21, 30, 45, 50, 87 };
IList<string> strList = new List<string>() { "One", "Two", null, "Four", "Five" };

Console.WriteLine("3rd Element in intList: {0}", intList.ElementAtOrDefault(2));
Console.WriteLine("3rd Element in strList: {0}", strList.ElementAtOrDefault(2));

Console.WriteLine("10th Element in intList: {0} - default int value", 
                intList.ElementAtOrDefault(9));		
Console.WriteLine("10th Element in strList: {0} - default string value",
                 strList.ElementAtOrDefault(9));

Đây là kết quả khi biên dịch và thực thi chương trình:

3rd Element in intList: 30
3rd Element in strList: Three
10th Element in intList: 0 - default int value
10th Element in strList: - default string value (null)

Xem ví dụ

Như bạn thấy ở ví dụ trên, phương thức ElementAtOrDefault trả về giá trị mặc định khi chỉ mục nằm ngoại phạm vi của danh sách và không ném ra ngoại lệ như phương thức ElementAt.

Lưu ý: nên sử dụng phương thức mở rộng ElementAtOrDefault thay thế cho phương thức ElementAt để loại trừ khả năng xảy ra ngoại lệ thời gian chạy.