Ngôn ngữ LINQ - Toán tử First

Toán tử phần tử: First 

Phương thức First trong LINQ

Phương thức First trả về phần tử đầu tiên của danh sách hoặc phần tử đầu tiên thỏa mãn điều kiện. Nếu không có phần tử như vậy tồn tại sẽ ném ra ngoại lệ.

Phương thức First có hai phương thức quá tải. Phương thức quá tải đầu tiên không lấy bất kỳ tham số đầu vào nào và trả về phần tử đầu tiên trong danh sách.

Phương thức quá tải thứ hai lấy biểu thức lambda làm predicate delegate để chỉ định một điều kiện và trả về phần tử đầu tiên thỏa mãn điều kiện đã chỉ định.

public static TSource First<TSource>(this IEnumerable<TSource> source);

public static TSource First<TSource>(this IEnumerable<TSource> source,
    Func<TSource, bool> predicate);

Phương thức First trả về phần tử đầu tiên của danh sách hoặc phần tử đầu tiên thỏa mãn điều kiện đã chỉ định bằng biểu thức lambda hoặc delegate Func.

Nếu một danh sách rỗng hoặc không có bất kỳ phần tử nào thỏa mãn điều kiện thì nó sẽ ném ra ngoại lệ InvalidOperation.

Ví dụ sau đây minh họa phương thức First:

IList<int> intList = new List<int>() { 7, 10, 21, 30, 45, 50, 87 };
IList<string> strList = new List<string>() { "One", "Two", "Three", "Four", "Five" };
IList<string> emptyList = new List<string>();
		
Console.WriteLine("1st Element in intList: {0}", intList.First());
Console.WriteLine("1st Even Element in intList: {0}", intList.First(i => i % 2 == 0));

Console.WriteLine("1st Element in strList: {0}", strList.First());

Console.WriteLine("emptyList.First() throws an InvalidOperationException");
Console.WriteLine("-----------------------------------------------------");
Console.WriteLine(emptyList.First());

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

1st Element in intList: 7
1st Even Element in intList: 10
1st Element in strList: One
emptyList.First() throws an InvalidOperationException
-----------------------------------------------------
Run-time exception: Sequence contains no elements...

Xem ví dụ

Hãy cẩn thận trong khi chỉ định điều kiện trong phương thức First. Nó sẽ đưa ra một ngoại lệ nếu danh sách không có bất kỳ phần tử nào thỏa mãn điều kiện đã chỉ định.