Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức Queryable.LongCount trong LINQ C#

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ứcTrả vềDùng cho
Count()intCollection nhỏ, LINQ to Objects
LongCount()longBig 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ấn SELECT 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ùng Any() (dừng sớm).