วิธีแปลง ArrayList เป็น Array ใน PowerShell
อาจมีสถานการณ์ที่คุณอาจต้องแปลง ArrayList เป็นอาร์เรย์ใน PowerShell ในบทช่วยสอน PowerShell นี้ ฉันจะแสดงวิธีการแปลง ArrayList เป็นอาร์เรย์ใน PowerShell โดยใช้วิธีการต่างๆ
หากต้องการแปลง ArrayList เป็นอาร์เรย์ใน PowerShell ให้ใช้เมธอด ToArray() บนอินสแตนซ์ ArrayList ตัวอย่างเช่น $array=$arrayList.ToArray() จะสร้างอาร์เรย์มาตรฐานจาก ArrayList วิธีการนี้เป็นวิธีที่ตรงไปตรงมาในการเปลี่ยนจากคอลเลกชันที่มีขนาดไดนามิกไปเป็นอาร์เรย์ที่มีขนาดคงที่
ข้อมูลเบื้องต้นเกี่ยวกับอาร์เรย์และรายการอาร์เรย์ใน PowerShell
ก่อนอื่นเรามาทำความเข้าใจว่าอาร์เรย์และ ArrayLists คืออะไรใน PowerShell
อาร์เรย์เป็นโครงสร้างข้อมูลพื้นฐานใน PowerShell ที่เก็บคอลเลกชันองค์ประกอบประเภทเดียวกันตามลำดับขนาดคงที่ อาร์เรย์ใช้เพื่อจัดเก็บค่าหลายค่าไว้ในตัวแปรตัวเดียว ซึ่งดัชนีสามารถเข้าถึงได้ นี่คือตัวอย่างง่ายๆ ของอาร์เรย์ใน PowerShell:
$array = 1, 2, 3, 4, 5ในทางกลับกัน ArrayList เป็นวัตถุไดนามิกที่สามารถเก็บคอลเลกชันของรายการได้ ต่างจากอาร์เรย์ตรงที่ ArrayLists สามารถขยายและลดขนาดได้แบบไดนามิก และสามารถเก็บรายการประเภทต่างๆ ได้
ArrayLists มาจาก .NET Framework และไม่ได้มาจาก PowerShell แต่จะมีประโยชน์มากเมื่อคุณต้องการคอลเลกชันที่สามารถเปลี่ยนขนาดได้ ต่อไปนี้คือวิธีที่คุณสามารถสร้าง ArrayList ใน PowerShell:
$arrayList = New-Object System.Collections.ArrayList
$arrayList.Add(1)
$arrayList.Add('two')
$arrayList.Add(3.0)เหตุใดจึงต้องแปลง ArrayList เป็น Array
คุณอาจต้องแปลง ArrayList เป็นอาร์เรย์ใน PowerShell ด้วยเหตุผลหลายประการ ตัวอย่างเช่น:
- คุณอาจมีฟังก์ชันที่ยอมรับเฉพาะอาร์เรย์เป็นอินพุตเท่านั้น
- อาร์เรย์เข้าถึงได้เร็วกว่าในลูปเนื่องจากมีขนาดคงที่
- cmdlet หรือวิธีการบางอย่างอาจต้องใช้อาร์เรย์แทน ArrayList
วิธีการแปลง ArrayList เป็น Array ใน PowerShell
ตอนนี้เรามาดูกันว่าคุณสามารถแปลง ArrayList เป็นอาร์เรย์ได้อย่างไร มีหลายวิธีในการทำเช่นนี้ และเราจะสำรวจแต่ละวิธีพร้อมตัวอย่าง
วิธีที่ 1: การใช้วิธี ToArray()
วิธีที่ตรงไปตรงมาที่สุดในการแปลง ArrayList เป็นอาร์เรย์ใน PowerShell คือการใช้เมธอด ToArray() เมธอดนี้เป็นสมาชิกของคลาส ArrayList และแปลง ArrayList ทั้งหมดเป็นอาร์เรย์ นี่คือวิธีการใช้งาน:
# Create an ArrayList and add some items
$arrayList = New-Object System.Collections.ArrayList
$arrayList.Add('PowerShell')
$arrayList.Add(101)
$arrayList.Add($true)
# Convert the ArrayList to an Array
$array = $arrayList.ToArray()
# Display the Array
$arrayในตัวอย่างนี้ $array จะเป็นอาร์เรย์ที่มีองค์ประกอบที่อยู่ใน $arrayList
เมื่อคุณรันสคริปต์โดยใช้โปรแกรมแก้ไขใดๆ เช่น รหัส VS หรือ Windows PowerShell ISE คุณจะเห็นผลลัพธ์เหมือนภาพหน้าจอด้านล่าง:
วิธีที่ 2: การใช้ PowerShell Casting
อีกวิธีในการแปลง ArrayList เป็นอาร์เรย์คือการใช้คุณลักษณะการคัดเลือกของ PowerShell ซึ่งคุณสามารถส่ง ArrayList ไปเป็นประเภทอาร์เรย์ที่ต้องการได้ นี่คือตัวอย่าง:
# Create an ArrayList and add some items
$arrayList = New-Object System.Collections.ArrayList
$arrayList.Add(10)
$arrayList.Add(20)
$arrayList.Add(30)
# Cast the ArrayList to an Array
[array]$array = $arrayList
# Display the Array
$arrayเมื่อคุณส่งแบบนี้ PowerShell จะสร้างอาร์เรย์ใหม่ประเภทเดียวกันกับรายการใน ArrayList
วิธีที่ 3: การใช้ตัวดำเนินการ @() Array Subexpression
คุณยังสามารถใช้ตัวดำเนินการนิพจน์ย่อยอาร์เรย์ @() เพื่อแปลง ArrayList เป็นอาร์เรย์ใน PowerShell โอเปอเรเตอร์นี้จะส่งคืนอาร์เรย์เสมอ แม้ว่าคุณจะใช้กับรายการเดียวก็ตาม นี่คือตัวอย่าง:
# Create an ArrayList and add some items
$arrayList = New-Object System.Collections.ArrayList
$arrayList.Add('a')
$arrayList.Add('b')
$arrayList.Add('c')
# Use the array subexpression operator to convert to an Array
$array = @($arrayList)
# Display the Array
$array
วิธีการนี้มีประโยชน์อย่างยิ่งหากคุณต้องการให้แน่ใจว่าผลลัพธ์จะเป็นอาร์เรย์เสมอ แม้ว่า ArrayList จะว่างเปล่าหรือมีเพียงรายการเดียวก็ตาม
บทสรุป
ใน PowerShell การแปลง ArrayList เป็นอาร์เรย์สามารถทำได้หลายวิธี รวมถึงการใช้วิธีการ ToArray() การแคสต์ และตัวดำเนินการนิพจน์ย่อยของอาร์เรย์ แต่ละวิธีมีกรณีการใช้งานของตัวเอง และสามารถเลือกได้ตามความต้องการเฉพาะของสคริปต์หรือฟังก์ชันของคุณ
ฉันหวังว่าตอนนี้คุณจะมีแนวคิดที่สมบูรณ์เกี่ยวกับวิธีแปลง ArrayList เป็นอาร์เรย์ใน PowerShell
