C# 堆栈 - CopyTo() 方法
C# 堆栈 CopyTo() 方法用于将堆栈复制到现有的一维数组中,从指定的数组索引开始。
元素将按照后进先出 (LIFO) 的顺序复制到数组中。
语法
以下是 C# 堆栈 CopyTo() 方法的语法 -
public virtual void CopyTo (Array array, int index);
参数
此方法接受以下参数 -
- array:它是一个从零开始的一维数组,是从堆栈中复制元素的目标位置。
- index:它表示数组中从零开始的索引,复制从该索引开始。
返回值
此方法不返回任何值。
示例 1:使用 CopyTo() 方法
以下是使用 CopyTo() 方法复制堆栈元素到数组中的基本示例 -
using System; using System.Collections; class Program { static void Main() { Stack myStack = new Stack(); myStack.Push("Tutorialspoint"); myStack.Push("Hyderabad"); myStack.Push("India"); myStack.Push("Tutorix"); // 创建一个足够大小的数组 object[] myArray = new object[5]; // 将堆栈元素复制到从索引 2 开始的数组 myStack.CopyTo(myArray, 1); // 显示数组元素 Console.WriteLine("Array after copying:"); foreach (var item in myArray) { // 使用 ?? "null" 来处理空槽 Console.WriteLine(item ?? "null"); } } }
输出
以下是输出 -
Array after copying: null Tutorix India Hyderabad Tutorialspoint
示例 2:将堆栈转换为数组
让我们看另一个使用 CopyTo() 方法的示例,该示例将堆栈中的所有元素复制到数组中 -
using System; using System.Collections; class Program { static void Main() { Stack myStack = new Stack(); myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4); myStack.Push(5); // 创建一个足够大小的数组 object[] myArray = new object[5]; // Copy stack elements to the array starting at index 2 myStack.CopyTo(myArray, 0); // 显示数组元素 Console.WriteLine("Array after copying:"); foreach (var item in myArray) { // 使用 ?? "null" 来处理空槽 Console.WriteLine(item ?? "null"); } } }
输出
以下是输出 -
Array after copying: 5 4 3 2 1
示例 3:将 Person 详细信息复制到数组中
以下示例创建了一个 Person 对象。这里,我们使用 CopyTo() 方法从堆栈中创建一个 Person 对象数组 -
using System; using System.Collections.Generic; class Person { public string Name { get; set; } public int Age { get; set; } // 构造函数初始化姓名和年龄 public Person(string name, int age) { Name = name; Age = age; } public override string ToString() { return $"Name: {Name}, Age: {Age}"; } } class Example { static void Main() { // 创建一个 Person 对象堆栈 Stack<Person> people = new Stack<Person>(); // 将 Person 对象推送到堆栈 people.Push(new Person("Aman", 25)); people.Push(new Person("Gupta", 24)); people.Push(new Person("Vivek", 26)); Console.WriteLine("People stack before CopyTo:"); foreach (var person in people) { Console.WriteLine(person); } // 创建一个数组来保存复制的元素 Person[] peopleArray = new Person[3]; people.CopyTo(peopleArray, 0); Console.WriteLine("Array after CopyTo:"); foreach (var person in peopleArray) { Console.WriteLine(person); } } }
输出
以下是输出 -
People stack before CopyTo: Name: Vivek, Age: 26 Name: Gupta, Age: 24 Name: Aman, Age: 25 Array after CopyTo: Name: Vivek, Age: 26 Name: Gupta, Age: 24 Name: Aman, Age: 25