一.本质
本质也是object数组,但无法直接获取数组某个元素.
先进后出.
二.申明
要头文件System.Collections.
Stack s = new Stack();
三.增删查改
1.增
压栈,只能一个一个的来
s.Push(1);
s.Push("123")l
s.Push(34.123f);
2.取
弹栈,弹出栈顶元素.
Object o = s.Pop();
3.查
栈无法查看指定位置元素,栈没有实现索引器.栈只能看栈顶.
Object o = s.Peek();
//注意Peek方法与Pop的区别,Peek只是查看栈顶,并没有像pop一样取出
但可以查找元素是否在栈中
if(s.Contains(1))
{
//查找s是否有整数1
}
4.改
栈无法改指定元素,只能push,pop,除非Clear()全部清空重来.
四.遍历
若只查看长度
s.Count;//已存元素数量
方法1:
//因为栈没有实现索引器,所以不能中括号查找,则只能foreach,而且遍历出来的顺序也是从顶到底
foreach(Object item in s)
{
Console.WriteLine(item);
}
方法2:
Object[] arr = s.ToArray();//把栈转换成数组,然后遍历数组
for(itn i = 0;i<arr.Length;i++)
{
Console.WriteLine(arr[i]);//也是从顶到底
}
方法3:
while(s.Count>0)
{
//边取便用
Object o = s.Pop();
Console.WriteLine(o);
}
五.装箱拆箱
与ArrayList类似
参考资料<唐老狮C#教程>