特殊なタイプのキューであるデータ構造が必要です。キューのインスタンスにオブジェクト X が含まれていた場合、このインスタンスで X を再度キューに入れることができないようにする必要があります。エンキュー メソッドは、HashSet に重複する値を追加しようとする場合と同様に、X で呼び出された場合は何もしないでください。
使用例:
MyQueue<int> queue = new MyQueue<int>();
queue.Enqueue(5);
queue.Enqueue(17);
queue.Enqueue(28);
queue.Enqueue(17);
int firstNumber = queue.Dequeue();
queue.Enqueue(5);
queue.Enqueue(3);
List<int> queueContents = queue.ToList(); //this list should contain {17, 28, 3}
MSDN を調べてみましたが、そのようなクラスは見つかりませんでした。それは存在しますか、それとも自分で実装する必要がありますか?
別のデータ構造を使用することもできると思いますが、アクセスは常に FIFO になるため、キューが最も効率的であると考えました。また、このような「インスタンスの有効期間にわたる一意性」機能を提供する他の構造を知りません。