在c#中克隆队列

Ida*_*nis 1 c# queue clone

我有以下代码:

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

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

Queue newQueue = oldQueue;
string newString = newQueue.Dequeue();
Run Code Online (Sandbox Code Playgroud)

问题是,一旦我将项目从newQueue队列中取出,该项目也会从队列中退出oldQueue.有没有办法以一种方式"克隆"队列,从一个队列中删除一个项目将保持其克隆队列不变?

Hen*_*man 16

你必须做一个更深的副本:

   //Queue newQueue = oldQueue;
   Queue<string> newQueue = new Queue<string>(oldQueue);
Run Code Online (Sandbox Code Playgroud)

  • @rolls - 对于(不可变和可内部的)字符串,根本没有任何意义。对于其他数据,这在很大程度上取决于。 (2认同)