คลาส Stack ใน C# แสดงถึงคอลเล็กชันออบเจ็กต์แบบเข้าก่อนออกก่อน (LIFO) แบบธรรมดาแบบธรรมดา
ต่อไปนี้เป็นคุณสมบัติของคลาส Stack -
| Sr.No | คุณสมบัติ &คำอธิบาย |
|---|---|
| 1 | นับ รับจำนวนขององค์ประกอบที่มีอยู่ในกอง |
| 2 | ซิงโครไนซ์ รับค่าที่ระบุว่าการเข้าถึง Stack นั้นซิงโครไนซ์หรือไม่ (เธรดที่ปลอดภัย) |
| 3 | SyncRoot รับอ็อบเจ็กต์ที่สามารถใช้เพื่อซิงโครไนซ์การเข้าถึงสแต็ก |
ต่อไปนี้เป็นวิธีการบางอย่างของคลาส Stack -
| Sr.No | คุณสมบัติ &คำอธิบาย |
|---|---|
| 1 | ล้าง() ลบอ็อบเจ็กต์ทั้งหมดออกจากสแต็ก |
| 2 | โคลน() สร้างสำเนาแบบตื้นของสแต็ก |
| 3 | ประกอบด้วย (วัตถุ) ไม่ว่าจะเป็นองค์ประกอบในกองหรือไม่ |
| 4 | CopyTo(Array, Int32) คัดลอกสแต็กไปยังอาร์เรย์หนึ่งมิติที่มีอยู่ โดยเริ่มต้นที่ดัชนีอาร์เรย์ที่ระบุ |
| 5 | เท่ากับ (วัตถุ) กำหนดว่าวัตถุที่ระบุเท่ากับวัตถุปัจจุบันหรือไม่ |
| 6 | GetEnumerator() ส่งกลับ IEnumerator สำหรับกอง |
| 7 | GetHashCode() ทำหน้าที่เป็นฟังก์ชันแฮชเริ่มต้น (สืบทอดจาก Object) |
| 8 | GetType() รับชนิดของอินสแตนซ์ปัจจุบัน |
| 9 | Peek() ส่งกลับวัตถุที่ด้านบนของกองโดยไม่ต้องเอาออก |
| 10 | ป๊อป() ลบและส่งคืนวัตถุที่ด้านบนของ Stack |
| 11 | ผลัก(วัตถุ) แทรกวัตถุที่ด้านบนของสแต็ก |
ตัวอย่าง
ให้เรามาดูตัวอย่างบางส่วนกัน −
ในการรับวัตถุที่ด้านบนสุดของ Stack โค้ดจะเป็นดังนี้ -
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
หากต้องการตรวจสอบว่า Stack มีองค์ประกอบหรือไม่ ให้ใช้วิธี C# ประกอบด้วย () ต่อไปนี้เป็นรหัส -
ตัวอย่าง
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