你能告诉我每次我打电话后Count
,检查Queue
所有的Queue
计数或队列是否有一个int
计数的属性,并且每次添加/删除它都会增加/减少?
无论如何,有没有更好的方法来知道队列是否为空?
请参阅MSDN 文档(“queue.count 属性”在 Google 中的第一次点击):
检索此属性的值是 O(1) 操作。
a的容量是可以存储
Queue<T>
的元素的数量。是实际在 中的元素数。Queue<T>
Count
Queue<T>
容量总是大于或等于
Count
。如果Count
在添加元素时超出容量,则通过在复制旧元素并添加新元素之前自动重新分配内部数组来增加容量。检索此属性的值是 O(1) 操作。
了解 Queue 是否为空的更好方法是使用IEnumerable
Any方法。
这样,您无需遍历整个集合即可在使用 Count 方法时简单地了解集合中是否至少有一个项目。
if(myQueue.Any())
{
// Do something.
}
在 where 是一个属性的情况下,使用vsCount
会有轻微的性能提升,但是我认为在许多情况下程序员的意图会更好地保留下来,特别是当检查的目的是查看是否存在任何项目时。Count
Any
Any