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

C# 배열의 총 요소 수 구하기 – GetLength() 메서드 활용법

C#에서 배열에 포함된 전체 요소 수를 확인해야 하는 경우가 자주 있습니다. 이때 GetLength() 메서드를 사용하면 간단하게 배열의 길이를 구할 수 있습니다. 아래 예제를 통해 실제 사용 방법을 살펴보겠습니다.

예제 1: 문자열 배열의 요소 수 확인

다음 코드는 여러 개의 상품 이름이 담긴 문자열 배열을 선언하고, GetLength(0)으로 배열의 총 요소 수를 출력한 뒤, Array.Exists() 메서드로 특정 문자로 시작하는 요소가 있는지도 함께 확인합니다.

using System;
public class Demo {
   public static void Main() {
      string[] products = { "Electronics", "Accessories", "Clothing", "Toys", "Clothing", "Furniture" };
      Console.WriteLine("상품 목록...");
      foreach(string s in products) {
         Console.WriteLine(s);
      }
      Console.WriteLine("배열 길이 = "+products.GetLength(0));
      Console.WriteLine("\n'C'로 시작하는 상품이 하나 이상 있습니까? = {0}", Array.Exists(products, ele => ele.StartsWith("C")));
      Console.WriteLine("'D'로 시작하는 상품이 하나 이상 있습니까? = {0}", Array.Exists(products, ele => ele.StartsWith("D")));
      Console.WriteLine("'T'로 시작하는 상품이 하나 이상 있습니까? = {0}", Array.Exists(products, ele => ele.StartsWith("T")));
      Console.WriteLine("'E'로 시작하는 상품이 하나 이상 있습니까? = {0}", Array.Exists(products, ele => ele.StartsWith("E")));
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

상품 목록...
Electronics
Accessories
Clothing
Toys
Clothing
Furniture
배열 길이 = 6

'C'로 시작하는 상품이 하나 이상 있습니까? = True
'D'로 시작하는 상품이 하나 이상 있습니까? = False
'T'로 시작하는 상품이 하나 이상 있습니까? = True
'E'로 시작하는 상품이 하나 이상 있습니까? = True

코드 설명

  • GetLength(0): 첫 번째 차원(0차원)의 요소 수를 반환합니다. 1차원 배열에서는 Length 속성과 동일한 값을 반환하지만, 다차원 배열에서는 차원별 길이를 구할 때 유용합니다.
  • Array.Exists(): 조건자(predicate)를 만족하는 요소가 배열에 하나라도 존재하면 true를, 없으면 false를 반환합니다.

예제 2: 빈 배열의 요소 수 및 배열 속성 확인

이번에는 요소가 없는 빈 배열을 선언하고, 배열의 길이와 함께 IsFixedSize, IsReadOnly 속성도 확인해 보겠습니다.

using System;
public class Demo {
   public static void Main() {
      string[] products = new string[] { };
      Console.WriteLine("배열 길이 = "+products.GetLength(0));
      Console.WriteLine("배열 크기가 고정되어 있습니까? = " + products.IsFixedSize);
      Console.WriteLine("배열이 읽기 전용입니까? = " + products.IsReadOnly);
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

배열 길이 = 0
배열 크기가 고정되어 있습니까? = True
배열이 읽기 전용입니까? = False

핵심 정리

  • C#의 배열은 생성 시점에 크기가 결정되므로 IsFixedSize는 항상 true입니다.
  • 일반 배열은 기본적으로 수정 가능하므로 IsReadOnlyfalse를 반환합니다.
  • 요소가 없는 빈 배열이라도 GetLength(0)은 오류 없이 0을 반환합니다.