Count
を呼び出すたびに、Queue
すべてを調べQueue
てカウントするか、キューにカウントのプロパティがあり、int
それを追加/削除するたびに増加/減少するかどうか教えてもらえますか?
とにかく、キューが空かどうかを知る良い方法はありますか?
MSDN ドキュメントを参照してください(「queue.count プロパティ」に対する Google での最初のヒット):
このプロパティの値を取得することは、O(1) 操作です。
a の容量は、が格納できる
Queue<T>
要素の数です。実際に にある要素の数です。Queue<T>
Count
Queue<T>
容量は常に以上です
Count
。要素の追加中に容量を超えた場合Count
、古い要素をコピーして新しい要素を追加する前に、内部配列を自動的に再割り当てすることで容量を増やします。このプロパティの値を取得することは、O(1) 操作です。
MSDNのソースから取得Queue<T>.Count Property
Queue が空かどうかを知るより良い方法は、IEnumerable
のAnyメソッドを使用することです。
この方法では、Count メソッドを使用するときに、コレクション内に少なくとも 1 つの項目があるかどうかを簡単に知るために、コレクション全体を反復処理する必要はありません。
if(myQueue.Any())
{
// Do something.
}
is がプロパティの場合、vsCount
を使用するとわずかにパフォーマンスが向上しますが、多くの場合、特にチェックの目的が項目が存在するかどうかを確認することである場合、プログラマーの意図はよりよく維持されると思います。Count
Any
Any