Phương thức LongCount() của IQueryable<T> trả về tổng số phần tử dưới dạng long (Int64). Dùng cho các nguồn dữ liệu lớn (LINQ to SQL, Entity Framework) nơi số lượng bản ghi có thể vượt quá int.MaxValue.
Ví dụ với mảng chuỗi
string[] emp = { "Jack", "Mark" };
long count = emp.AsQueryable().LongCount(); // 2
Mã nguồn hoàn chỉnh
using System;
using System.Collections.Generic;
using System.Linq;
class Demo
{
static void Main()
{
string[] emp = { "Jack", "Mark" };
long res = emp.AsQueryable().LongCount();
Console.WriteLine("{0} employees in the Department", res);
}
}
Kết quả
2 employees in the Department
LongCount() vs Count()
| Phương thức | Trả về | Dùng cho |
|---|---|---|
Count() | int | Collection nhỏ, LINQ to Objects |
LongCount() | long | Big data, LINQ to SQL (dịch sang COUNT_BIG) |
Overload có predicate
// Đếm nhân viên tên bắt đầu bằng 'J'
long jCount = emp.AsQueryable().LongCount(e => e.StartsWith("J")); // 1
Lưu ý
- Với
IQueryable(database),LongCount()thực thi truy vấnSELECT COUNT_BIG(*)trên server. - Với
IEnumerable(in-memory), nó duyệt toàn bộ chuỗi - chậm nếu collection lớn. - Không dùng
LongCount() == 0để kiểm tra rỗng - dùngAny()(dừng sớm).