Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 예제와 스택

<시간/>

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