在C#中,Stack<T>是一个泛型集合,它实现了后进先出(LIFO)的数据结构。这个类位于System.Collections.Generic命名空间中,提供了一种类型安全的方式来存储和管理元素序列。
基本用法:
- 创建一个Stack<T>实例,指定元素的类型。
- 使用Push方法添加元素到栈顶。
- 使用Pop方法移除栈顶元素。
- 使用Peek方法查看栈顶元素,但不移除它。
- 使用Count属性获取栈中元素的数量。
示例代码:
using System.Collections.Generic;
Stack<int> stack = new Stack<int>();
stack.Push(1); // 添加元素1
stack.Push(2); // 添加元素2
stack.Push(3); // 添加元素3
int topElement = stack.Peek(); // 查看栈顶元素,此时为3
Console.WriteLine(topElement);
int removedElement = stack.Pop(); // 移除栈顶元素,此时为3,并返回该值
Console.WriteLine(removedElement);
int count = stack.Count; // 获取栈中剩余元素的数量,此时为2
Console.WriteLine(count);
特性:
- Stack<T>是线程安全的,但在多线程环境下应谨慎使用,因为默认的栈实现不是同步的。
- Stack<T>支持泛型,这意味着你可以用任何数据类型来实例化它,如Stack<string>、Stack<int>等。
- Stack<T>提供了一些额外的方法,如Clear(清空栈)、Contains(判断栈中是否包含某个元素)、CopyTo(将栈中的元素复制到数组)等。
Stack<T>是处理后进先出逻辑的理想选择,常用于算法实现、数据结构设计和程序流程控制等场景。