Java にはDequeというクラスがあり、これに似たものを .NET (C#) で見つけたいと思います。
これが必要な理由は、コレクションの最後の項目を覗いてから、コレクションの最初の項目をデキューする必要があるためです。
ありがとう、AJラビンディラン。
Java にはDequeというクラスがあり、これに似たものを .NET (C#) で見つけたいと思います。
これが必要な理由は、コレクションの最後の項目を覗いてから、コレクションの最初の項目をデキューする必要があるためです。
ありがとう、AJラビンディラン。
PowerCollectionsには Deque クラス (および実績のある血統) があります。
Deque として使用できる.NET のSystem.Collections.Generic.LinkedListコレクションを確認してください。二重にリンクされたリストです。
挿入・削除
AddFirst
: 先頭に追加AddLast
: 末尾に追加RemoveFirst
: 最初から削除します。値を返しません。RemoveLast
:端から外します。値を返しません。のぞき見:
Deque<T>
(リングバッファを使用)と同時ロックフリーの私の実装は次のConcurrentDeque<T>
とおりです。
どちらのクラスも、両端キューの両端での Push、Pop、および Peek 操作をすべて O(1) 時間でサポートします。
リストはあなたのためにそれをするべきです:
var l = new List<int>();
var last = l[l.Count - 1];
l.RemoveAt(0);
このようなものは、別のSOの質問で触れられました。
人気のある答えはリンクリストで解決しているようで、EricLippertは彼自身のDeque実装を提案しました。
ですから、簡単な答えはノーだと思います。.NETにはそのような厳密なデータ構造は組み込まれていません。
HTH。