C#中的Stack.ToArray()方法用于将Stack复制到新数组。
语法如下-
public virtual object[] ToArray ();
现在让我们看一个例子-
using System; using System.Collections; public class Demo { public static void Main() { Stack stack = new Stack(); stack.Push("Inspiron"); stack.Push("Alienware"); stack.Push("Projectors"); stack.Push("Monitors"); stack.Push("XPS"); stack.Push("Laptop"); stack.Push("Notebook"); Console.WriteLine("堆栈元素...-"); foreach(string val in stack) { Console.WriteLine(val); } Console.WriteLine("Count of elements = "+stack.Count); stack.Push("Ultrabook"); stack.Push("Cameras"); stack.Push("Keyboards"); Console.WriteLine("\n堆栈元素...-updated"); foreach(string val in stack) { Console.WriteLine(val); } Console.WriteLine("\nCount of elements (updated) = "+stack.Count); Console.WriteLine("Is the Stack synchronized? = "+stack.IsSynchronized); Stack stack2 = Stack.Synchronized(stack); Console.WriteLine("Is the Stack synchronized? = "+stack2.IsSynchronized); Console.WriteLine("\nCopying the Stack to a new array..."); Object[] objArr = stack2.ToArray(); foreach(Object ob in objArr) { Console.WriteLine(ob); } } }
输出结果
这将产生以下输出-
堆栈元素...- Notebook Laptop XPS Monitors Projectors Alienware Inspiron Count of elements = 7 堆栈元素...-updated Keyboards Cameras Ultrabook Notebook Laptop XPS Monitors Projectors Alienware Inspiron Count of elements (updated) = 10 Is the Stack synchronized? = False Is the Stack synchronized? = True Copying the Stack to a new array... Keyboards Cameras Ultrabook Notebook Laptop XPS Monitors Projectors Alienware Inspiron
现在让我们来看另一个示例-
using System; using System.Collections; public class Demo { public static void Main() { Stack stack = new Stack(); stack.Push(150); stack.Push(300); stack.Push(500); stack.Push(750); stack.Push(1000); stack.Push(1250); stack.Push(1500); stack.Push(2000); stack.Push(2500); Console.WriteLine("堆栈元素...-"); foreach(int val in stack) { Console.WriteLine(val); } Console.WriteLine("Count of elements = "+stack.Count); stack.Push(3000); stack.Push(3500); stack.Push(4000); Console.WriteLine("\n堆栈元素...-updated"); foreach(int val in stack) { Console.WriteLine(val); } Console.WriteLine("\nCount of elements (updated) = "+stack.Count); Console.WriteLine("\nCopying the Stack to a new array..."); Object[] objArr = stack.ToArray(); foreach(Object ob in objArr) { Console.WriteLine(ob); } Console.WriteLine("\nCount of elements in array = "+objArr.Length); } }
输出结果
这将产生以下输出-
堆栈元素...- 2500 2000 1500 1250 1000 750 500 300 150 Count of elements = 9 堆栈元素...-updated 4000 3500 3000 2500 2000 1500 1250 1000 750 500 300 150 Count of elements (updated) = 12 Copying the Stack to a new array... 4000 3500 3000 2500 2000 1500 1250 1000 750 500 300 150 Count of elements in array = 12