ภาพรวม
Stack<T>.CopyTo(T[] array, int index) คัดลอกข้อมูลจาก Stack ไปยังอาร์เรย์ โดยลำดับจะเป็นจากบนสุด (top) ไปด้านล่าง
ตัวอย่างที่ 1: คัดลอก Stack 10 สมาชิกไปอาร์เรย์ขนาด 10 เริ่มดัชนี 0
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Stack<int> stack = new Stack<int>();
stack.Push(10);
stack.Push(20);
stack.Push(30);
stack.Push(40);
stack.Push(50);
stack.Push(60);
stack.Push(70);
stack.Push(80);
stack.Push(90);
stack.Push(100);
Console.WriteLine("Displaying the stack...");
foreach (int val in stack)
{
Console.WriteLine(val);
}
int[] intArr = new int[stack.Count];
stack.CopyTo(intArr, 0);
Console.WriteLine("Displaying the array...");
foreach (int val in intArr)
{
Console.WriteLine(val);
}
}
}
ผลลัพธ์
Displaying the stack... 100 90 80 70 60 50 40 30 20 10 Displaying the array... 100 90 80 70 60 50 40 30 20 10
ตัวอย่างที่ 2: คัดลอก Stack 5 สมาชิกไปอาร์เรย์ขนาด 10 เริ่มดัชนี 2
using System;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
Stack<int> stack = new Stack<int>();
stack.Push(10);
stack.Push(20);
stack.Push(30);
stack.Push(40);
stack.Push(50);
Console.WriteLine("Displaying the stack...");
foreach (int val in stack)
{
Console.WriteLine(val);
}
int[] intArr = new int[10];
stack.CopyTo(intArr, 2);
Console.WriteLine("Displaying the array...");
foreach (int val in intArr)
{
Console.WriteLine(val);
}
}
}
ผลลัพธ์
Displaying the stack... 50 40 30 20 10 Displaying the array... 0 0 50 40 30 20 10 0 0 0
สรุป
- ลำดับในอาร์เรย์จะตรงกับลำดับการวนลูป Stack (top ก่อน)
- อาร์เรย์ปลายทางต้องมีขนาด >= Count + index
- ช่องว่างจะเป็นค่า default (0 สำหรับ int)