gpt4 book ai didi

c# - 你将如何获得队列中的第一个和最后一个项目?

转载 作者:太空狗 更新时间:2023-10-29 18:01:14 25 4
gpt4 key购买 nike

假设我有一个值的滚动集合,我在其中指定集合的​​大小,并且每当添加新值时,超出此指定大小的任何旧值都会被删除。显然(我已经对此进行了测试)用于此行为的最佳集合类型是队列:

myQueue.Enqueue(newValue)
If myQueue.Count > specifiedSize Then myQueue.Dequeue()

但是,如果我想计算队列中第一项和最后一项之间的差异怎么办?显然我不能通过索引访问这些项目。但是从 Queue 切换到实现 IList 的东西似乎有点矫枉过正,编写一个新的类似 Queue 的类也是如此。现在我有:

Dim firstValue As Integer = myQueue.Peek()
Dim lastValue As Integer = myQueue.ToArray()(myQueue.Count - 1)
Dim diff As Integer = lastValue - firstValue

ToArray() 的调用让我很困扰,但我没有找到更好的选择。有什么建议吗?

最佳答案

您可以做的一件事是有一个临时变量来存储刚刚入队的值,因为这将是最后一个值,因此可以访问该变量以获取该值。

关于c# - 你将如何获得队列中的第一个和最后一个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1308186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com