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


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


此方法用於創建堆棧的淺拷貝。它隻是創建堆棧的副本。該副本將引用內部數據陣列的克隆,但不引用原始內部數據陣列。

用法: public virtual object Clone ();

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


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

// C# program to Copy a Stack using  
// the assignment operator 
using System; 
using System.Collections; 
  
class GFG { 
  
    // Main Method 
    public static void Main(string[] args) 
    { 
  
        Stack myStack = new Stack(); 
        myStack.Push("C"); 
        myStack.Push("C++"); 
        myStack.Push("Java"); 
        myStack.Push("C#"); 
  
        // Creating a copy using the 
        // assignment operator. 
        Stack myStack2 = myStack;  
  
        // Removing top most element 
        myStack2.Pop();  
        PrintValues(myStack); 
    } 
  
    public static void PrintValues(IEnumerable myCollection) 
    { 
        // This method prints all 
        // the elements in the Stack. 
        foreach(Object obj in myCollection) 
            Console.WriteLine(obj); 
    } 
}
輸出:
Java
C++
C

範例2:

// C# program to illustrate the use  
// of Stack.Clone() Method  
using System; 
using System.Collections; 
  
class MainClass { 
  
    // Main Method 
    public static void Main(string[] args) 
    { 
  
        Stack myStack = new Stack(); 
        myStack.Push("1st Element"); 
        myStack.Push("2nd Element"); 
        myStack.Push("3rd Element"); 
        myStack.Push("4th Element"); 
  
        // Creating copy using Clone() method 
        Stack myStack3 = (Stack)myStack.Clone();  
      
        // Removing top most element 
        myStack3.Pop();  
        PrintValues(myStack); 
    } 
  
    public static void PrintValues(IEnumerable myCollection) 
    { 
        // This method prints all the 
        // elements in the Stack. 
        foreach(Object obj in myCollection) 
            Console.WriteLine(obj); 
    } 
}
輸出:
4th Element
3rd Element
2nd Element
1st Element

參考:



相關用法


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