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

Toán tử LongCount trong LINQ

Toán tử LongCount tương tự như toán tử Count - đó là trả về số lượng phần tử trong tổng hợp hoặc đếm số phần tử thỏa mãn điều kiện đã cho.

Tuy nhiên nó khác toán tử Count ở chỗ toán tử Count trả về dữ liệu kiểu int còn LongCount trả về dữ liệu kiểu long (sử dụng cho những danh sách có số phần tử siêu lớn vượt quá giới hạn kích thước kiểu int).

Phương thức mở rộng LongCount có hai phương thức quá tải sau:

long LongCount<TSource>();

long LongCount<TSource>(Func<TSource, bool> predicate);

Ví dụ sau đây minh họa cách sử dụng phương thức LongCount trên danh sách kiểu nguyên thủy.

IList<int> intList = new List<int>() { 10, 21, 30, 45, 50, 60, 70 };

var totalElements = intList.LongCount();

Console.WriteLine("Total Elements: {0}", totalElements);

var evenElements = intList.LongCount(i => i % 2 == 0);

Console.WriteLine("Even Elements: {0}", evenElements);

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

Total Elements: 7
Even Elements: 4

Xem ví dụ

Ví dụ sau đây min họa phương thức LongCount trên danh sách có kiểu phức tạp.

IList<Student> studentList = new List<Student>>() 
{ 
    new Student() { StudentID = 1, StudentName = "John", Age = 13 },
    new Student() { StudentID = 2, StudentName = "Moin",  Age = 21 },
    new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 },
    new Student() { StudentID = 4, StudentName = "Ram", Age = 20 },
    new Student() { StudentID = 5, StudentName = "Ron", Age = 15 } 
};

var totalStudents = studentList.LongCount();

Console.WriteLine("Total Students: {0}", totalStudents);

var teenStudents = studentList.LongCount(s => s.Age > 12 && s.Age < 20);

Console.WriteLine("Number of teen Students: {0}", teenStudents);

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

Total Students: 5
Number of teen Students: 3

Xem ví dụ

Lưu ý: Toán tử LongCount không hỗ trợ cú pháp truy vấn trong LINQ.