C# 队列(Queue)和 堆栈(Stack)

unity C#中Array、Stack、Queue、Dictionary、HashSet优缺点和使用场景总结 在C#中,集合通常指代泛型集合基类,它定义了通用集合行为。实际应用中更多是指其派生类如。​最后我们放松一下眼睛。 阅读详情

C# 队列(Queue)

队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。

Queue 类的方法和属性

下表列出了 Queue 类的一些常用的 属性:

属性 描述
Count 获取 Queue 中包含的元素个数。

下表列出了 Queue 类的一些常用的 方法:

序号 方法名 & 描述
1 public virtual void Clear(); 
从 Queue 中移除所有的元素。
2 public virtual bool Contains( object obj ); 
判断某个元素是否在 Queue 中。
3 public virtual object Dequeue();
移除并返回在 Queue 的开头的对象。
4 public virtual void Enqueue( object obj ); 
向 Queue 的末尾添加一个对象。
5 public virtual object[] ToArray();
复制 Queue 到一个新的数组中。
6 public virtual void TrimToSize();
设置容量为 Queue 中元素的实际个数。

 

实例

下面的实例演示了队列(Queue)的使用:

using System;
using System.Collections;

namespace CollectionsApplication
{
   class Program
   {
      static void Main(string[] args)
      {
         Queue q = new Queue();

         q.Enqueue('A');
         q.Enqueue('M');
         q.Enqueue('G');
         q.Enqueue('W');
         
         Console.WriteLine("Current queue: ");
         foreach (char c in q)
            Console.Write(c + " ");
         Console.WriteLine();
         q.Enqueue('V');
         q.Enqueue('H');
         Console.WriteLine("Current queue: ");         
         foreach (char c in q)
            Console.Write(c + " ");
         Console.WriteLine();
         Console.WriteLine("Removing some values ");
         char ch = (char)q.Dequeue();
         Console.WriteLine("The removed value: {0}", ch);
         ch = (char)q.Dequeue();
         Console.WriteLine("The removed value: {0}", ch);
         Console.ReadKey();
      }
   }
}

当上面的代码被编译和执行时,它会产生下列结果:

Current queue: 
A M G W 
Current queue: 
A M G W V H 
Removing values
The removed value: A
The removed value: M

C# 堆栈(Stack)

堆栈(Stack)代表了一个后进先出的对象集合。当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。

Stack 类的方法和属性

下表列出了 Stack 类的一些常用的 属性:

属性 描述
Count 获取 Stack 中包含的元素个数。

下表列出了 Stack 类的一些常用的 方法:

序号 方法名 & 描述
1 public virtual void Clear(); 
从 Stack 中移除所有的元素。
2 public virtual bool Contains( object obj ); 
判断某个元素是否在 Stack 中。
3 public virtual object Peek();
返回在 Stack 的顶部的对象,但不移除它。
4 public virtual object Pop();
移除并返回在 Stack 的顶部的对象。
5 public virtual void Push( object obj );
向 Stack 的顶部添加一个对象。
6 public virtual object[] ToArray();
复制 Stack 到一个新的数组中。

实例

下面的实例演示了堆栈(Stack)的使用:

using System;
using System.Collections;

namespace CollectionsApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Stack st = new Stack();

            st.Push('A');
            st.Push('M');
            st.Push('G');
            st.Push('W');
            
            Console.WriteLine("Current stack: ");
            foreach (char c in st)
            {
                Console.Write(c + " ");
            }
            Console.WriteLine();
            
            st.Push('V');
            st.Push('H');
            Console.WriteLine("The next poppable value in stack: {0}", 
            st.Peek());
            Console.WriteLine("Current stack: ");           
            foreach (char c in st)
            {
               Console.Write(c + " ");
            }
            Console.WriteLine();

            Console.WriteLine("Removing values ");
            st.Pop();
            st.Pop();
            st.Pop();
            
            Console.WriteLine("Current stack: ");
            foreach (char c in st)
            {
               Console.Write(c + " "); 
            }
        }
    }
}


当上面的代码被编译和执行时,它会产生下列结果:

Current stack: 
W G M A
The next poppable value in stack: H
Current stack: 
H V W G M A
Removing values
Current stack: 
G M A
  C#中堆栈(Stack)和队列(Queue) C#中堆栈(Stack)和队列(Queue) 一. 什么是堆?(Heap) 堆是无序的,是一片不连续的内存域,由用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的值时,通过垃圾回收器(GC)来回收。是程序运行期间动态分配的内存空间,你可以根据程序的运行情况来确定要分配的堆内存的大小。 二. 什么是栈?(Stack) 栈是有顺序的,是一片连续的内存域,保持着先进后出的原则,有... 阅读详情

相关推荐

Obsidian + AI 自动知识管理:手把手教程

装完后,在命令面板(Ctrl+P)搜 "Generate Summary",AI 会在当前笔记末尾追加一段摘要。你一个月前写的、现在想快速回顾的笔记长篇笔记(三千字以上)开会记录这类信息密集的内容过度自动化。有人装上插件后,所有笔记都让 AI 打标签、写摘要、找关联。最后笔记库看起来整整齐齐,但全都是 AI 的链接,你自己完全没参与。这样做的后果是什么?你写过的笔记跟你没有"真实连接"。你还是记不住。你还是不知道自己的知识库里有什么。AI 推荐,你决策。

weixin_43571227的博客 750

C#队列(Queue)和堆栈(Stack)

C#队列(Queue)和堆栈(Stack)

不在同一频道上的呆子的博客 720

OPCUA二(通过OPCUA服务器访问CPU)

摘要:本文介绍了使用UaExpert软件连接西门子PLC的OPC UA配置方法,包括IP地址设置(默认端口4840)、安全认证和证书信任流程。详细说明了数据访问操作,如变量拖拽监控和属性解读(NodeId、Value、状态码等)。特别强调连接仿真Advance7时需先启动实例。最后预告下章将讲解通过KerServer访问CPU。文章涵盖配置步骤、常见问题处理及实用技巧,适合工业自动化开发者参考。

欢迎来到RaymondLeigh的知识共享基地 1343

C# 队列(Queue)和堆栈(Stack)

目录标题一、队列(Queue)1.1、概念1.2、Queue类的属性1.3、Queue类的方法1.4、示例演示二、堆栈(Stack)2.1、概念2.2、Stack类的属性2.3、Stack类的方法2.4、示例演示 一、队列(Queue) 1.1、概念 队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。 1.2、Queue类的属性 下表列出了Queue类的一些常用的属性: 1.3、Queue类的方

Wu7z_的博客 498

【数据清洗】数据清洗流程及经验

预处理阶段 预处理阶段主要做两件事情: 一是将数据导入处理工具。 二是看数据。包含两个部分:一是看元数据,包括字段解释、数据来源、代码表等等一切描述数据的信息;二是抽取一部分数据,对数据本身有一个直观的了解,并且初步发现一些问题,为之后的处理做准备。 第一步:缺失值清洗 四个步骤: 1、确定缺失值范围:对每个字段都计算其缺失值比例,然后按照缺失比例和字段重要性,分别制定策略。 2、去除不需要的...

JoJo93723的博客 6499

(篇八)C语言在母串删子串、输入位置截取子串

文章目录一、字符串二、删除指定的字符三、从母串中截取子串四、输入位置截取子串 本篇主要介绍C语言字符串中的相关操作,然后分析两个C语言实例——在母串中指定删除子串、在母串中截取子串 一、字符串 了解C 语言的都知道,C语言中没有字符串类型,所以C语言是用字符串常量、字符指针、字符数组来表示字符串。这些字符串都是以 NULL、’\0’或者ASCII==0来结尾。说白了就是一个个字符组成一串有序序列,...

Viewinfinitely的博客 1512

C# 编程中的堆栈(Stack)和队列(Queue)

原文:C# 编程中的堆栈(Stack)和队列(Queue)一、什么是堆?(Heap)      堆是无序的,是一片不连续的内存域,由用户自己来控制和释放,如果用户自己不释放的话,当内存达到一定的特定值时,通过垃圾回收器(GC)来回收。      是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。 二、什么是栈?(Stack)      栈是有顺序的,是一片...

weixin_33819479的博客 414

WPF基础系列六:MVVM框架

MVVM框架 文章目录MVVM框架前言一、MVVM框架简介1. 什么是MVVM?2. MVVM的优势3.MVVM的应用场景二、MVVM使用及示例 前言 在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。 与WinForm开发相比,我们一般在后置代码中会使用控件的名字来操作控件的属性来更新UI,而在WPF中通常是通过

iceberg7012的博客 2万+

C#(五十九)之三种数据结构 stack queue sortedList

如果您使用索引访问各项,则它是一个动态数组(ArrayList),如果您使用键访问各项,则它是一个哈希表(存储键值)也就是说是两个数组,相互关联。初始化 Queue 类的新实例,该实例包含从指定集合复制的元素,具有与所复制的元素数相同的初始容量并使用默认增长因子。初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用指定的增长因子。初始化 Queue 类的新实例,该实例为空,具有指定的初始容量并使用默认增长因子。返回 SortedList 中的指定键的索引,索引从零开始。

camellia的博客 436

汇川Easy 301 和MCGS进行Modbus RTU通讯(485)浮点数读取和写入

4DF0001对应寄存器D0,4DF0003对应寄存器D2。注意:要选com2口,com1口是232通讯。

qq_61916672的博客 2916

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

包括YOLOv5、YOLOv7、YOLOv8等模型改进 741

c#队列取值_C# 队列(Queue) 和堆栈(Stack)

队列 (Queue)队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则可使用队列。当能在列表中添加一项,称为入列,当您从列表中移除一项时,称为出列。属性属性描述Count获取 Queue 中包含的元素个数。方法方法描述public virtual void Clear();从 Queue 中移除所有的元素。public virtual bool Contains...

weixin_39681486的博客 325

LPDDR6与LPDDR5 State Diagram技术探讨

LPDDR6与LPDDR5 State Diagram技术探讨

zilan23的博客 1178

C#堆栈(Stack)/队列(Queue)

当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。他代表了一个后进先出的对象的集合,当您需要对各项进行后进先的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表移除一项时,称为弹出元素。Stack(非泛型):存储对象为Object类型,使用时需要显示类型转换,可能会导致运行时的异常。Stack<T>(泛型):提供类型安全,避免类型转换问题,性能更优,因为避免了装箱和拆箱的开销。Queue分别提供了非泛型和泛型版本的实现,适用于需要按照入队顺序处理数据的场景。

wangyuhua_的博客 490

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

c#队列取值_C# 队列(Queue)和 堆栈(Stack)

C# 队列(Queue)和 堆栈(Stack)C#队列(Queue)队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。Queue 类的方法和属性下表列出了Queue类的一些常用的属性:属性描述Count获取 Queue 中包含的元素个数。下表列出了Queue类的一些常用的方...

weixin_39929877的博客 213

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# 中的 堆栈 (Stack) 和 队列 (Queue)

C#中的堆栈(Stack)和队列(Queue)是两种基本数据结构,遵循不同的处理原则:堆栈基于LIFO(后进先出),队列基于FIFO(先进先出)。堆栈核心操作包括Push、Pop和Peek,常用于撤销操作、方法调用等场景;队列核心操作包括Enqueue、Dequeue和Peek,适用于消息处理、任务调度等场景。选择依据取决于是否需要反向处理(堆栈)或顺序处理(队列)元素,两者在计算机科学中各有其典型应用场景。

ultramand的博客,重生之我在cad上二次开发猛猛敲C#代码~ 884

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

转载------C# 队列(Queue)和 堆栈(Stack)

C# 队列(Queue)和 堆栈(Stack) C#队列(Queue) 队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。 Queue 类的方法和属性 下表列出了Q...

chengquying3939的博客 167

C#初级学习-Queue队列与Stack堆栈

队列     命名空间     System.Collections 特点    先进先出,能接受空值,并且允许重复的元素 主要操作 Enqueue() 将元素加至队列末尾 Dequeue() 从开头处移除第一个元素 Peek() 返回队列中的第一个元素,但不删除对头元素 属性 Count 获取Queue中所包含的元素...

yhz_xi的博客 325

C#的队列(Queue)和堆栈(Stack)的用法

C# 队列(Queue)队列(Queue)代表了一个先进先出的对象集合。当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。Queue 类的方法和属性下表列出了 Queue 类的一些常用的 属性:属性描述Count获取 Queue 中包含的元素个数。下表列出了 Queue 类的一些常用的 方法:序号方法名 &amp; 描述1public...

主宰 1172
上一篇: C#生成随机验证码例子
下一篇: 解决:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间提示问题
JiYF
博客等级 码龄11年 356粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值