Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 배열 클래스의 Array.LongLength 속성 완벽 가이드

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를 사용하는 것이 더 안전한 선택입니다.