0

Countを呼び出すたびに、Queueすべてを調べQueueてカウントするか、キューにカウントのプロパティがあり、intそれを追加/削除するたびに増加/減少するかどうか教えてもらえますか?

とにかく、キューが空かどうかを知る良い方法はありますか?

4

3 に答える 3

5

MSDN ドキュメントを参照してください(「queue.count プロパティ」に対する Google での最初のヒット):

このプロパティの値を取得することは、O(1) 操作です。

于 2012-09-16T13:12:41.793 に答える
2

a の容量は、が格納できるQueue<T>要素の数です。実際に にある要素の数です。Queue<T>CountQueue<T>

容量は常に以上ですCount。要素の追加中に容量を超えた場合Count、古い要素をコピーして新しい要素を追加する前に、内部配列を自動的に再割り当てすることで容量を増やします。

このプロパティの値を取得することは、O(1) 操作です。

MSDNのソースから取得Queue<T>.Count Property

于 2012-09-16T13:12:37.323 に答える
-1

Queue が空かどうかを知るより良い方法は、IEnumerableAnyメソッドを使用することです。

この方法では、Count メソッドを使用するときに、コレクション内に少なくとも 1 つの項目があるかどうかを簡単に知るために、コレクション全体を反復処理する必要はありません。

if(myQueue.Any())
{
 // Do something.
}

is がプロパティの場合、vsCountを使用するとわずかにパフォーマンスが向上しますが、多くの場合、特にチェックの目的が項目が存在するかどうかを確認することである場合、プログラマーの意図はよりよく維持されると思います。CountAnyAny

于 2012-09-16T13:12:15.147 に答える