3

次のコードがあります。

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

oldQueue.Enqueue("One");
oldQueue.Enqueue("Two");
oldQueue.Enqueue("Three");

Queue newQueue = oldQueue;
string newString = newQueue.Dequeue();

問題は、アイテムを からデキューすると、アイテムnewQueueもからデキューされることoldQueueです。1 つのキューから項目を削除してもそのクローン キューが変更されないように、キューを「クローン」する方法はありますか?

4

2 に答える 2

2

Queue は参照型であるため、newQueue と oldQueue は同じオブジェクトへのポインターを保持します。それらは同じです;-)

リフレクションを使用して「ディープ クローニング」を行う方法については、この回答を参照してください。

Silverlight の拡張メソッドでリフレクションを使用してディープ コピーしますか?

于 2013-04-25T08:23:47.123 に答える