當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C# Queue.Clone()用法及代碼示例

此方法用於創建隊列的淺拷貝。它隻是創建隊列的副本。該副本將引用內部元素的克隆,但不引用原始元素。

用法: public virtual object Clone ();

返回值:該方法返回一個Object,它隻是Queue的淺拷貝。


示例1:讓我們看一個示例,該示例不使用Clone()方法,而是使用賦值運算符“ =”直接複製隊列。在下麵的代碼中,即使我們使用myQueue2中的Dequeue()元素,我們也可以看到myQueue的內容也已更改。這是因為“ =”隻是將myQueue的引用分配給myQueue2,而不會創建任何新的Queue。但是Clone()創建一個新的隊列。

// C# program to Copy a Queue using  
// the assignment operator 
using System; 
using System.Collections; 
  
class GFG { 
  
    // Main Method 
    public static void Main(string[] args) 
    { 
  
        Queue myQueue = new Queue(); 
        myQueue.Enqueue("Geeks"); 
        myQueue.Enqueue("Class"); 
        myQueue.Enqueue("Noida"); 
        myQueue.Enqueue("UP"); 
  
        // Creating a copy using the  
        // assignment operator. 
        Queue myQueue2 = myQueue;  
  
        myQueue2.Dequeue(); 
  
        PrintValues(myQueue); 
    } 
  
    public static void PrintValues(IEnumerable myCollection) 
    { 
        // This method prints all the 
        // elements in the Stack. 
        foreach(Object obj in myCollection) 
            Console.WriteLine(obj); 
    } 
}
輸出:
Class
Noida
UP

示例2:這裏myQueue保持不變。

// C# program to illustrate the use  
// of Object.Clone() Method  
using System; 
using System.Collections; 
  
class GFG { 
  
    // Main Method 
    public static void Main(string[] args) 
    { 
  
        Queue myQueue = new Queue(); 
        myQueue.Enqueue("Geeks"); 
        myQueue.Enqueue("Class"); 
        myQueue.Enqueue("Noida"); 
        myQueue.Enqueue("UP"); 
  
        // Creating copy using Clone() method. 
        Queue myQueue2 = (Queue)myQueue.Clone();  
        myQueue2.Dequeue(); 
  
        PrintValues(myQueue); 
    } 
  
    public static void PrintValues(IEnumerable myCollection) 
    { 
        // This method prints all the 
        // elements in the Stack. 
        foreach(Object obj in myCollection) 
            Console.WriteLine(obj); 
        Console.WriteLine(); 
    } 
}
輸出:
Geeks
Class
Noida
UP

參考:



相關用法


注:本文由純淨天空篩選整理自mayukh Sengupta大神的英文原創作品 Queue.Clone() Method in C#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。