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

C#에서 스택(Stack)을 배열로 변환하는 방법 – ToArray() 메서드 활용

C#에서 Stack<T> 컬렉션을 배열로 변환할 때는 ToArray() 메서드를 사용합니다. 이 메서드는 스택의 모든 요소를 새로운 배열에 복사하며, 요소 순서는 스택의 후입선출(LIFO) 구조를 그대로 따릅니다. 즉, 가장 마지막에 Push된 요소가 배열의 첫 번째 요소가 됩니다.

예제 1: 문자열 스택 변환

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(){
        Stack<string> stack = new Stack<string>();
        stack.Push("AB");
        stack.Push("CD");
        stack.Push("FG");
        stack.Push("KL");
        Console.WriteLine("Array...");
        foreach(string i in stack){
            Console.WriteLine(i);
        }
        string[] strArr = stack.ToArray();
        Console.WriteLine("Convert Stack to Array...");
        foreach(string i in strArr){
            Console.WriteLine(i);
        }
    }
}

출력 결과

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

Array...
KL
FG
CD
AB
Convert Stack to Array...
KL
FG
CD
AB

예제 2: 정수 스택 변환

이번에는 정수형(int) 스택을 배열로 변환하는 또 다른 예제를 살펴보겠습니다.

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main(){
        Stack<int> stack = new Stack<int>();
        stack.Push(250);
        stack.Push(500);
        stack.Push(750);
        stack.Push(1000);
        stack.Push(1200);
        stack.Push(1500);
        Console.WriteLine("Array...");
        foreach(int i in stack){
            Console.WriteLine(i);
        }
        int[] intArr = stack.ToArray();
        Console.WriteLine("Convert Stack to Array...");
        foreach(int i in intArr){
            Console.WriteLine(i);
        }
    }
}

출력 결과

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

Array...
1500
1200
1000
750
500
250
Convert Stack to Array...
1500
1200
1000
750
500
250

핵심 정리

  • ToArray() 메서드는 스택의 모든 요소를 동일한 순서대로 새 배열에 복사합니다.
  • 원본 스택은 변경되지 않으며, 항상 가장 최근에 Push된 요소부터 순서대로 저장됩니다.
  • 반환되는 배열의 자료형은 스택의 제네릭 타입(T)과 일치합니다.