c# queue类操作疑问 各位大侠,使用c#的queue类,可以peek()队列开头的一个元素。可是我如果想peek()队列开头的n个元素,该怎么做呢?是不是就不能用c#的queue类,而必须得自己写queue类了?c#有可以支持peek() n个元素的queue类么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果队列里有100个元素,但是前50个满足某个特征,我可能不定期的扫描一下这个队列,peek一下前n个数据,发现里面的m(m > n)个数据满足某些特征,这m个数据就可以出队了。但是我只有peek前n个数据,才可能判断m个数据满足某个特征,可以出队。这种用法,在某些流式数据的帧格式判决上应用是非常多的,怎么还有疑问么? 如果先出队再入队,就造成数据顺序乱了。我说一下我的实际应用吧:下位机不定期的发送log数据给PC软件。COM的每个log帧符合一定的格式,但是可能是断续的发到PC上,而且可能有误码(虽然概率很低,但是也需要考虑进去)。所以PC上必须首先能处理断续到达的COM帧(有先后顺序的,所以肯定要入PC的队列),PC收到一包数据数据后,开始检查队列,peek前面的n个数据,看是否是固定格式,如果符合某个固定格式,就从格式里解出帧长度并从队列里读出帧。所以必须peek前n个数据,才能判断是否有一帧完整的数据帧到达的。如果借住栈,那顺序就乱了。我以前是用c写了帧的解析类,转到c#,想能利用现成的呢。如果没有,可能在c#上自己写queue类了。 那你就自己写一个了,附带一个我写的例子,供你参考,希望对你有帮助:http://blog.csdn.net/zxz414644665/article/details/10977201 其实用一个List<T>就可以了。List<T>保证新插入的都在结尾,而你Remove开头的就相当于出队了。 其实用一个List<T>就可以了。List<T>保证新插入的都在结尾,而你Remove开头的就相当于出队了。我觉得也是,有能够满足你需求的数据结构,就不用再去造轮子了。或者你再稍微封装一下就可以了。 TO 楼主:List<T> 可以满足你的要求,只不过,你需要每次取出第 N 个元素之后,把他 Remove 掉,你可以对 List<T> 做一层封装 onclick要两次才执行JS:clickok(),放在page_load里不行,因为我要传值,请高手帮忙 return语句 请问各位大大查询问题 局域网内的PC如何实现互联网间SOCKET通信 在定义类前面加一个[XXXXXXXX]是什么意思?叫什么技术? 关于Access数据库的还原与备份,重要的是和进度条能联动!C/S+100 水晶报表中的 '报表页脚'怎么样实现在每一页都显示 UMI与网站设计模式 问个C#调用存储过程的问题 我需要多长时间? 请问各位,将combox嵌入到datagridview中,如何让combox的内容为数据库取出的列值? VS2010 如何输出类及方法的清单?
这种用法,在某些流式数据的帧格式判决上应用是非常多的,怎么还有疑问么?
http://blog.csdn.net/zxz414644665/article/details/10977201
其实用一个List<T>就可以了。List<T>保证新插入的都在结尾,而你Remove开头的就相当于出队了。
其实用一个List<T>就可以了。List<T>保证新插入的都在结尾,而你Remove开头的就相当于出队了。我觉得也是,有能够满足你需求的数据结构,就不用再去造轮子了。或者你再稍微封装一下就可以了。