新建一个WPF项目,测试C#的Queue类的简单使用。

前台准备两个按钮
MainWindow.xaml

<StackPanel VerticalAlignment="Center">
<Button Content="加一个元素" Click="Add"/>
<Button Content="查看队列" Click="Show"/>
</StackPanel>

后台代码:
MainWindow .xaml.cs

public partial class MainWindow : Window
{
Queue<int> queue;
int i = 0; public MainWindow()
{
InitializeComponent();
queue = new Queue<int>(3); // 初始化的容量为3
} private void Add(object sender, RoutedEventArgs e)
{
// 往Queue中添加一个元素
queue.Enqueue(i);
i++;
} private void Show(object sender, RoutedEventArgs e)
{
// 查看Queue中的所有元素
string result = null;
foreach (var item in queue)
{
result += " " + item;
}
MessageBox.Show(result);
}
}

测试:
通过点击【添加】和【查看】来观察Queue队列中的内容。可以发现, 虽然Queue初始化容量为3,但依然可以加入多于3个元素。当加入了4个元素时,打印结果如下:

需求:
要做撤销(Undo)和重做(Redo)功能,考虑用一个Queue队列来保存操作的命令(而不是整个被操作对象的所有数据),如果只允许撤销N步,那么就需要这个Queue队列有一个最大的长度。

小结:
所以,如果想要确保Queue的长度,需要在加入新的元素时判断当前的Queue队列长度,如果超过一个预设的值,可以使用Queue.Dequeue()来丢掉列头的元素。

【C#】Queue的简单试用的更多相关文章

  1. (C#)使用队列(Queue)解决简单的并发问题

    (C#)使用队列(Queue)解决简单的并发问题 2015-07-16 13:04 13265人阅读 评论(8) 收藏 举报  分类: Asp.Net(8)  版权声明:本文为博主原创文章,未经博主允 ...

  2. 【数据结构】 Queue 的简单实现

    [数据结构] Queue 的简单实现 public class XQueue<T> { /// <summary> /// 第一个元素 /// </summary> ...

  3. jQuery无刷新上传之uploadify简单试用

    先简单的侃两句:貌似已经有两个月的时间没有写过文章了,不过仍会像以前那样每天至少有一至两个小时是泡在园子里看各位大神的文章.前些天在研究“ajax无刷新上传”方面的一些插件,用SWFUpload实现了 ...

  4. 团体队列UVA540 Team Queue(队列简单用法)

    题目背景 队列和优先级队列是大多数计算机科学家都知道的数据结构.但是团队队列却不被人熟知,尽管在生活中经常出现.比如,午餐时间的食堂门口的队列就是一个团队队列.在一个团队队列中,每个元素属于一个团队. ...

  5. apache airflow docker 运行简单试用

    airflow 是一个编排.调度和监控workflow的平台,由Airbnb开源,现在在Apache Software Foundation 孵化. airflow 将workflow编排为tasks ...

  6. rabbit的简单搭建,java使用rabbitmq queue的简单例子和一些坑

    一 整合 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的项目地址https://github.com/247292980/spring-boot 以整 ...

  7. cloudevents js sdk 简单试用

    cloudevents 目前官方提供了不同语言的sdk,以下是js 的简单学习试用,从目前来说更新不是很好 clone 代码 git clone https://github.com/cloudeve ...

  8. podium micro-frontends 简单试用

    以下是一个简单的podium 试用,包含了layout 以及podlets,使用docker 运行 podium 主要包含了两大部分 podlets 片段服务 layouts 片段组合服务 环境准备 ...

  9. Visual Studio Code 的简单试用体验

    首先对Visual Studio Code做一个大概的介绍.首先明确一下,这个Visual Studio Code(以下简称 vscode)是一个带GUI的代码编辑器,也就是只能完成简单的代码编辑功能 ...

随机推荐

  1. Toast连续弹出的问题

    public class CommUtils { private static Toast toast = null; public static void showToast(int text) { ...

  2. TCP/IP协议(转)

    摘自:http://jpkc.nwpu.edu.cn/jp2006/rjjs/work/dzjc/rppt/chap08/08CH0005.HTM TCP/IP(Transmission Contro ...

  3. xml 引入约束文件

    <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" ...

  4. SpringBoot使用拦截器

    SpringBoot的拦截器只能拦截流经DispatcherServlet的请求,对于自定义的Servlet无法进行拦截. SpringMVC中的拦截器有两种:HandlerInterceptor和W ...

  5. ubuntu 安装ssh 服务

    百度地址: http://jingyan.baidu.com/article/00a07f38a5c05482d128dc5f.html

  6. maven springmvc spring data jpa hibernate sqlserver demo

    搭建费了半天费,各种报错,缺少各种jar包,不兼容等,给那些没弄过的一个参考. 点击我下载

  7. Windows下面安装和配置Solr 4.9(二)

    将Solr和Tomcat结合: 1.在D盘下创建目录 D:\Demos\Solr 2.解压solr-4.9.0文件,我这里下载的是这个4.9版本,将example文件夹下的solr文件夹中的所有文件( ...

  8. python学习笔记011——检查变量类型type()

    >>> a = 1 >>> type(a) <class 'int'> >>> b = 1.0 >>> type(b ...

  9. 《JAVA与模式》之参考资料

    1.书籍 <JHead First 设计模式(中文版)> <JAVA与模式> <大话设计模式> 2.连接地址 http://blog.csdn.net/jason0 ...

  10. 《JAVA与模式》之有感

    陆陆续续看了gof,大话设计模式等books,对于设计模式仍然是徘徊于门外,随偶有感悟,然久必忘记,是实则悟性太低. 因此作此文,结合博客中一系列关于设计模式的博文,加深对设计模式的理解,同时备自己随 ...