C#에서 시퀀스에 포함된 요소의 총 개수를 64비트 부호 있는 정수(long) 형태로 반환하려면 LINQ의 LongCount 메서드를 사용할 수 있습니다. 일반적인 Count 메서드와 달리 LongCount는 int 범위를 초과하는 대용량 컬렉션도 안전하게 처리할 수 있다는 장점이 있습니다.
1. 문자열 배열 선언
먼저 예제에 사용할 문자열 배열을 선언합니다.
string[] num = { "One", "Two", "Three", "Four", "Five"};2. LongCount 메서드로 요소 개수 구하기
배열을 AsQueryable()로 변환한 뒤 LongCount 메서드를 호출하면, 시퀀스의 전체 요소 개수가 long 타입으로 반환됩니다.
num.AsQueryable().LongCount();
전체 예제 코드
지금까지 설명한 내용을 하나로 합친 완전한 코드는 다음과 같습니다.
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);
}
}실행 결과
5 elements
정리
이처럼 LongCount 메서드를 사용하면 시퀀스의 요소 개수를 64비트 부호 있는 정수(long)로 손쉽게 얻을 수 있습니다. 특히 매우 큰 데이터 소스에서 요소 수를 계산할 때 오버플로우 걱정 없이 안전하게 사용할 수 있습니다.