Phương thức LongCount() trong LINQ trả về tổng số phần tử của một chuỗi (sequence) dưới dạng long (Int64). Hữu ích khi số lượng phần tử có thể vượt quá int.MaxValue (2,147,483,647).
Ví dụ với mảng chuỗi
string[] num = { "One", "Two", "Three", "Four", "Five" };
long count = num.AsQueryable().LongCount(); // 5
Mã nguồn hoàn chỉnh
using System;
using System.Collections.Generic;
using System.Linq;
class Demo
{
static void Main()
{
string[] num = { "One", "Two", "Three", "Four", "Five" };
long res = num.AsQueryable().LongCount();
Console.WriteLine("{0} elements", res);
}
}
Kết quả
5 elements
LongCount vs Count
| Phương thức | Trả về | Dùng khi |
|---|---|---|
Count() | int | Số phần tử < 2 tỷ, cần hiệu suất cao |
LongCount() | long | Số phần tử lớn, collection không biết trước kích thước |
Overload có điều kiện
// Đếm số phần tử thỏa mãn điều kiện
long evenCount = numbers.LongCount(n => n % 2 == 0);
Lưu ý
LongCount()duyệt toàn bộ chuỗi nếu không implementICollectionhoặcICollection<T>.- Với
IQueryable(LINQ to SQL), nó dịch sangCOUNT_BIGtrong SQL Server. - Tránh dùng
LongCount() == 0để kiểm tra rỗng, hãy dùngAny()(dừng sớm).