C# 栈—— 入栈 出栈 获取栈顶元素 遍历 清空 数量

文章目录:

常用

在这里插入图片描述

/*
 * 功能:
 *  
 * 作者:
 * 时间:
 * 修改:
 *
 */
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泛型集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值