C#では、キューが空かどうかを確認するにはどうすればよいですか?
キューの要素を繰り返し処理したいのですが、停止するタイミングを知る必要があります。どうすればこれを達成できますか?
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...
}
Any() メソッドを使用することをお勧めします。これはキュー全体をカウントしないため、パフォーマンスが向上します。
Queue myQueue = new Queue();
if(myQueue.Any()){
//queue not empty
}
あなたが意味したと仮定してSystem.Collections.Generic.Queue<T>
if(yourQueue.Count != 0) { /* Whatever */ }
トリックを行う必要があります。
Queue test = new Queue();
if(test.Count > 0){
//queue not empty
}
Queue は IEnumerable を実装しているため、拡張メソッド .Count() を使用できます。
_queue.Any() を実行して、その中に要素があるかどうかを確認することもできます。
その Count プロパティが 0 に等しいかどうかを確認できます。
TryPeek()
Queue に要素があるかどうかを確認できます。
Queue q = new Queue();
if (!q.TryPeek(out object i)) {
/* Queue is empty */
....
}