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

Đếm tổng số phần tử trong chuỗi dưới dạng Int64 (LongCount) trong C#

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ứcTrả vềDùng khi
Count()intSố phần tử < 2 tỷ, cần hiệu suất cao
LongCount()longSố 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 implement ICollection hoặc ICollection<T>.
  • Với IQueryable (LINQ to SQL), nó dịch sang COUNT_BIG trong SQL Server.
  • Tránh dùng LongCount() == 0 để kiểm tra rỗng, hãy dùng Any() (dừng sớm).