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

C# Array 클래스의 주요 메서드와 속성 완벽 가이드

C#에서 Array 클래스는 모든 배열의 기본(base) 클래스로, System 네임스페이스에 정의되어 있습니다. 이 클래스가 제공하는 메서드와 속성을 활용하면 배열 복사, 검색, 정렬 방향 변경 등 다양한 작업을 손쉽게 처리할 수 있습니다.

Array 클래스의 주요 메서드

다음은 C# Array 클래스에서 자주 사용되는 메서드 목록입니다.

번호메서드 및 설명
1Clear
요소의 형식에 따라 배열 내 지정된 범위의 요소를 0, false 또는 null로 설정합니다.
2Copy(Array, Array, Int32)
첫 번째 요소부터 시작하는 원본 배열의 일부 요소를 다른 배열의 첫 번째 요소 위치부터 복사합니다. 복사할 길이는 32비트 정수로 지정합니다.
3CopyTo(Array, Int32)
현재 1차원 배열의 모든 요소를 지정된 대상 배열 인덱스부터 시작하는 위치로 복사합니다. 인덱스는 32비트 정수로 지정합니다.
4GetLength
배열의 지정된 차원에 포함된 요소 수를 32비트 정수로 반환합니다.
5GetLongLength
배열의 지정된 차원에 포함된 요소 수를 64비트 정수로 반환합니다.
6GetLowerBound
배열에서 지정된 차원의 하한 인덱스를 가져옵니다.
7GetType
현재 인스턴스의 Type을 반환합니다. (Object 클래스에서 상속)
8GetUpperBound
배열에서 지정된 차원의 상한 인덱스를 가져옵니다.
9GetValue(Int32)
1차원 배열에서 지정된 위치의 값을 가져옵니다. 인덱스는 32비트 정수로 지정합니다.
10IndexOf(Array, Object)
지정된 개체를 검색하여 전체 1차원 배열에서 처음 발견된 인덱스를 반환합니다.
11Reverse(Array)
전체 1차원 배열의 요소 순서를 반대로 뒤집습니다.

Array 클래스의 주요 속성

다음은 C# Array 클래스에서 제공하는 대표적인 속성입니다.

번호속성 및 설명
1IsFixedSize
배열의 크기가 고정되어 있는지 여부를 나타내는 값을 반환합니다.
2IsReadOnly
배열이 읽기 전용인지 여부를 나타내는 값을 반환합니다.
3Length
배열의 모든 차원에 포함된 전체 요소 수를 32비트 정수로 반환합니다.
4LongLength
배열의 모든 차원에 포함된 전체 요소 수를 64비트 정수로 반환합니다.
5Rank
배열의 차원 수(rank)를 반환합니다.

실전 예제: Reverse 메서드로 회문(Palindrome) 판별하기

Array.Reverse 메서드를 활용하면 문자 배열의 순서를 뒤집을 수 있습니다. 이를 이용해 문자열이 회문(Palindrome), 즉 거꾸로 읽어도 같은 문자열인지 확인해 보겠습니다.

아래 예제에서는 문자열 "Level"을 사용합니다. 이 단어는 뒤집어도 동일한 결과가 나오므로 회문으로 판별됩니다.

예제 코드

using System;
namespace Demo {
    class Program {
        static void Main(string[] args) {
            string string1, rev;
            string1 = "Level";
            char[] ch = string1.ToCharArray();

            // 배열 요소의 순서를 반대로 뒤집음
            Array.Reverse(ch);
            rev = new string(ch);

            // 대소문자를 구분하지 않고 원래 문자열과 비교
            bool b = string1.Equals(rev, StringComparison.OrdinalIgnoreCase);
            if (b == true) {
                Console.WriteLine("String " + string1 + " is a Palindrome!");
            } else {
                Console.WriteLine("String " + string1 + " is not a Palindrome!");
            }
            Console.Read();
        }
    }
}

코드 실행 흐름

1단계: ToCharArray() 메서드로 문자열 "Level"을 문자 배열로 변환합니다.
2단계: Array.Reverse() 메서드로 배열의 요소 순서를 뒤집습니다.
3단계: 뒤집힌 배열을 다시 문자열로 만들어 원래 문자열과 비교합니다.
4단계: StringComparison.OrdinalIgnoreCase 옵션으로 대소문자 차이를 무시하고 비교하므로 "Level"과 "leveL"은 같은 것으로 판정됩니다.

실행 결과는 다음과 같습니다.

String Level is a Palindrome!

이처럼 Array 클래스의 메서드를 잘 활용하면 복잡한 로직도 간결하게 구현할 수 있습니다.