C#의 Stack 클래스는 LIFO(후입 선출)가 아닌 일반 개체 컬렉션을 나타냅니다.
다음은 Stack 클래스의 속성입니다 -
| Sr.No | 속성 및 설명 |
|---|---|
| 1 | 카운트 스택에 포함된 요소의 수를 가져옵니다. |
| 2 | 동기화됨 스택에 대한 액세스가 동기화되었는지(스레드 안전) 여부를 나타내는 값을 가져옵니다. |
| 3 | SyncRoot 스택에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다. |
다음은 Stack 클래스의 메소드 중 일부입니다 -
| Sr.No | 속성 및 설명 |
|---|---|
| 1 | 지우기() 스택에서 모든 개체를 제거합니다. |
| 2 | 복제() 스택의 얕은 복사본을 만듭니다. |
| 3 | 포함(객체) 요소가 스택에 있는지 여부. |
| 4 | CopyTo(배열, Int32) 지정된 배열 인덱스에서 시작하여 스택을 기존 1차원 배열에 복사합니다. |
| 5 | 같음(객체) 지정된 개체가 현재 개체와 같은지 여부를 확인합니다. |
| 6 | GetEnumerator() 스택에 대한 IEnumerator를 반환합니다. |
| 7 | GetHashCode() 기본 해시 함수 역할을 합니다.(Object에서 상속됨) |
| 8 | GetType() 현재 인스턴스의 유형을 가져옵니다. |
| 9 | 피킹() 스택의 맨 위에 있는 개체를 제거하지 않고 반환합니다. |
| 10 | 팝() 스택의 맨 위에 있는 객체를 제거하고 반환합니다. |
| 11 | 푸시(객체) 스택의 맨 위에 개체를 삽입합니다. |
예시
이제 몇 가지 예를 살펴보겠습니다 -
스택의 맨 위에 있는 개체를 가져오려면 코드는 다음과 같습니다. -
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Stack<string> stack = new Stack<string>();
stack.Push("A");
stack.Push("B");
stack.Push("C");
stack.Push("D");
stack.Push("E");
stack.Push("F");
stack.Push("G");
stack.Push("H");
stack.Push("I");
stack.Push("J");
Console.WriteLine("Count of elements = "+stack.Count);
Console.WriteLine("Element at the top of stack = " + stack.Peek());
}
} 출력
이것은 다음과 같은 출력을 생성합니다 -
Count of elements = 10 Element at the top of stack = J Count of elements = 10
스택에 요소가 있는지 확인하려면 C# Contains() 메서드를 사용합니다. 다음은 코드입니다 -
예시
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
Stack<int> stack = new Stack<int>();
stack.Push(100);
stack.Push(150);
stack.Push(175);
stack.Push(200);
stack.Push(225);
stack.Push(250);
stack.Push(300);
stack.Push(400);
stack.Push(450);
stack.Push(500);
Console.WriteLine("Elements in the Stack:");
foreach(var val in stack) {
Console.WriteLine(val);
}
Console.WriteLine("Count of elements in the Stack = "+stack.Count);
Console.WriteLine("Does Stack has the element 400?= "+stack.Contains(400));
}
} 출력
이것은 다음과 같은 출력을 생성합니다 -
Elements in the Stack: 500 450 400 300 250 225 200 175 150 100 Count of elements in the Stack = 10 Does Stack has the element40400?= False