常用
/*
* 功能:
*
* 作者:
* 时间:
* 修改:
*
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class TestStack : MonoBehaviour
{
public Stack<string> myStack=new Stack<string>();
void Start()
{
//入栈
myStack.Push("01孙悟空");
myStack.Push("02猪八戒");
myStack.Push("03沙悟净");
Debug.Log("入栈后,栈集合里的元素————");
TraversCollection();
//出栈
myStack.Pop();
Debug.Log("出栈后,栈集合里的元素————");
TraversCollection();
//获取栈顶元素
Debug.Log("此时,栈顶元素是:"+myStack.Peek());
//清空
myStack.Clear();
//Count属性
Debug.Log("栈里元素数量:" + myStack.Count);
}
//【工具方法】用迭代器遍历集合
public void TraversCollection()
{
IEnumerator<string> myEnumerator = myStack.GetEnumerator();
while(myEnumerator.MoveNext())
{
Debug.Log(myEnumerator.Current);
}
}
}
详细
/*
* 功能:
*
* 作者:
* 时间:
* 修改:
*
*/
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class TestStack : MonoBehaviour
{
public Stack<string> myStack=new Stack<string>();
void Start()
{
//入栈
myStack.Push("01孙悟空");
myStack.Push("02猪八戒");
myStack.Push("03沙悟净");
Debug.Log("入栈后,栈集合里的元素————");
TraversCollection();
//出栈
myStack.Pop();
Debug.Log("出栈后,栈集合里的元素————");
TraversCollection();
//访问栈顶元素
Debug.Log("此时,栈顶元素是:"+myStack.Peek());
//访问任意元素
Debug.Log("从上往下数的第2个元素是:"+myStack.ElementAt(1));
//清空
myStack.Clear();
//有否
Debug.Log("是否存在元素:" + myStack.Contains("02猪八戒"));
//Count属性
Debug.Log("栈里元素数量:" + myStack.Count);
}
//【工具方法】遍历
public void TraversCollection()
{
//迭代器
//IEnumerator<string> myEnumerator = myStack.GetEnumerator();
//while(myEnumerator.MoveNext())
//{
// Debug.Log(myEnumerator.Current);
//}
//for
//for(int i=0;i<myStack.Count;i++)
//{
// Debug.Log(myStack.ElementAt(i));//使用ElementAt(),需引入System.Linq命名空间
//}
//foreach
foreach(string name in myStack)
{
Debug.Log(name);
}
}
}
官网链接
Stack类
Stack泛型集合