C#에서 Array.LongLength 속성은 배열의 모든 차원에 포함된 전체 요소 개수를 나타내는 64비트 정수(long)를 반환합니다. 일반적인 Length 속성과 달리, 매우 큰 배열에서도 안전하게 요소 개수를 확인할 수 있다는 점이 특징입니다.
LongLength 속성의 기본 사용법
예를 들어 long 데이터 형식으로 선언된 2차원 배열이 있다고 가정해 보겠습니다.
long[] arr1 = new long[15, 35];
이 배열에 LongLength 속성을 적용하면, 각 차원(15 × 35)을 곱한 전체 요소 개수인 525가 반환됩니다.
arr1.LongLength
예제 코드
다음 예제를 통해 Array 클래스의 LongLength 속성이 실제로 어떻게 동작하는지 살펴보겠습니다.
using System;
class Program {
static void Main() {
long[] arr1 = new long[15, 35];
long len1 = arr1.GetLongLength(0);
Console.WriteLine(len1);
Console.WriteLine(arr1.LongLength);
}
}실행 결과
15 525
결과 분석
위 실행 결과를 보면 두 가지 값을 확인할 수 있습니다.
15 — GetLongLength(0) 메서드가 첫 번째 차원(0번 인덱스)의 길이를 반환한 값입니다.
525 — LongLength 속성이 모든 차원의 요소를 합산한 값으로, 15 × 35 = 525가 출력됩니다.
LongLength와 Length의 차이점
LongLength 속성은 64비트 정수를 반환하므로, 32비트 int 범위(약 21억)를 초과하는 대규모 배열을 다룰 때 유용합니다. 반면 Length 속성은 32비트 정수를 반환하기 때문에 초대형 배열에서는 오버플로우 위험이 있습니다. 따라서 메모리 집약적인 애플리케이션에서는 LongLength를 사용하는 것이 더 안전한 선택입니다.