41

C#では、キューが空かどうかを確認するにはどうすればよいですか?

キューの要素を繰り返し処理したいのですが、停止するタイミングを知る必要があります。どうすればこれを達成できますか?

4

8 に答える 8

55

Queue<T>あなた単に使用できることを意味すると仮定します:

if (queue.Count != 0)

しかし、なぜわざわざ?とにかくそれを反復するだけで、それが空の場合は決して体に入ることはありません:

Queue<string> queue = new Queue<string>();

// It's fine to use foreach...
foreach (string x in queue)
{
    // We just won't get in here...
}
于 2011-11-01T15:18:57.383 に答える
24

Any() メソッドを使用することをお勧めします。これはキュー全体をカウントしないため、パフォーマンスが向上します。

Queue myQueue = new Queue();
    if(myQueue.Any()){
      //queue not empty
    }
于 2013-04-03T16:04:33.253 に答える
9

あなたが意味したと仮定してSystem.Collections.Generic.Queue<T>

if(yourQueue.Count != 0) { /* Whatever */ }

トリックを行う必要があります。

于 2011-11-01T15:18:42.030 に答える
3
    Queue test = new Queue();
    if(test.Count > 0){
      //queue not empty
    }
于 2011-11-01T15:19:51.623 に答える
2

Queue は IEnumerable を実装しているため、拡張メソッド .Count() を使用できます。

_queue.Any() を実行して、その中に要素があるかどうかを確認することもできます。

于 2011-11-01T15:19:38.477 に答える
1

その Count プロパティが 0 に等しいかどうかを確認できます。

于 2011-11-01T15:19:09.240 に答える
0

TryPeek()Queue に要素があるかどうかを確認できます。

Queue q = new Queue();
if (!q.TryPeek(out object i)) {
    /* Queue is empty */
    ....
}
于 2021-08-10T11:30:35.067 に答える