ค้นหาเว็บไซต์

วิธีแปลง 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

บทความที่เกี่ยวข้อง