前言
简述,关于C# Stack的用法,T 代表类型
声明 - 实例
//声明空间未实例
Stack stack;
Stack<T> stack;
//实例栈 object型 后期使用须按需求涉及拆箱和装箱 增加内存回收次数 耗费性能
stack = new Stack();
//实例栈 T型 值类型-线程栈 引用类型-托管堆
stack = new Strack<T>();
//或 指定预设长度为10 后期按需求自增
stack = new Strack<T>(10);
//或 指定预设长度为10 后期按需求自增
int count = 10;
stack = new Strack<T>(count);
长度
//与预设长度无关 当前压入量
int count = stack.Count;
压入
//后来居上式压入
stack.Push(t);
弹出
//弹出顶端元素并以此元素为返回值
T t = stack.Pop();
读取
顶端
//读取顶端元素并以此元素为返回值
T t = stack.Peek();
遍历
foreach (T item in stack)
{
Debug.Log(item);
}
判断
//判断元素是否存在
bool containsOrNot = stack.Contains(t);
极值
//若栈中元素是可比较的 数值类型比较大小 字符类型顺次比较
//优先级 0 - 9 - a - z - A - Z
T tMin = stack.Min();
//优先级 Z - A - z - a - 9 - 0
T tMax = stack.Max();
比较
//先由底端对齐 从栈的顶端位开始向下对应比较 长度不同必然不等
Stack<T> stack1 = new Stack<T>();
bool equalsOrNot = stack.Equals(stack1);
拷贝
//数组可接收长度必须足够 数组以下标为index为第一位置开始向后接收并覆盖自身
T[] array = new T[10];
stack.CopyTo(array, index);
清除
//清除所有元素 初始化栈 count = 0
stack.Clear();
栈转数组
T[] array = stack.ToArray();
栈转列表
List<T> list = stack.ToList();