Lớp Stack trong C# đại diện cho tập hợp last-in-first-out (LIFO) non-generic.
Thuộc tính
| STT | Thuộc tính & Mô tả |
| 1 | Count: Số phần tử trong Stack. |
| 2 | IsSynchronized: Có đồng bộ (thread-safe) không. |
| 3 | SyncRoot: Đối tượng dùng để đồng bộ hóa. |
Phương thức
| STT | Phương thức & Mô tả |
| 1 | Clear(): Xóa tất cả đối tượng. |
| 2 | Clone(): Tạo bản sao nông. |
| 3 | Contains(Object): Kiểm tra phần tử tồn tại. |
| 4 | CopyTo(Array, Int32): Sao chép vào mảng. |
| 5 | GetEnumerator(): Trả về IEnumerator. |
| 6 | Peek(): Xem phần tử đỉnh mà không xóa. |
| 7 | Pop(): Xóa và trả về phần tử đỉnh. |
| 8 | Push(Object): Thêm phần tử vào đỉnh. |
Ví dụ 1: Xem phần tử đỉnh (Peek)
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("Số phần tử = " + stack.Count);
Console.WriteLine("Phần tử ở đỉnh stack = " + stack.Peek());
}
}
Kết quả
Số phần tử = 10
Phần tử ở đỉnh stack = J
Ví dụ 2: Kiểm tra tồn tại (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("Các phần tử Stack:");
foreach(var val in stack) {
Console.WriteLine(val);
}
Console.WriteLine("Số phần tử = " + stack.Count);
Console.WriteLine("Có phần tử 400? = " + stack.Contains(400));
}
}
Kết quả
Các phần tử Stack:
500
450
400
300
250
225
200
175
150
100
Số phần tử = 10
Có phần tử 400? = True