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

วิธีลบรายการออกจากอาร์เรย์ใน PowerShell


คุณจำเป็นต้องลบรายการออกจากอาร์เรย์ใน PowerShell หรือไม่? ในโพสต์นี้ เราจะสำรวจวิธีลบรายการออกจากอาร์เรย์ใน PowerShell โดยใช้วิธีการและตัวอย่างต่างๆ

หากต้องการลบรายการออกจากอาร์เรย์ใน PowerShell ให้สร้างอาร์เรย์ใหม่โดยไม่มีรายการที่คุณต้องการลบ หรือใช้ ArrayList ซึ่งคุณสามารถใช้วิธี Remove ได้โดยตรง ตัวอย่างเช่น หากต้องการลบรายการที่ดัชนี 0 ออกจากอาร์เรย์ คุณสามารถใช้ $array=$array[1..$array.length] เพื่อข้ามรายการแรก หรือคุณสามารถส่งอาร์เรย์ไปยัง ArrayList แล้วใช้วิธี RemoveAt เช่น [System.Collections.ArrayList]$arrayList=$array; $arrayList.RemoveAt(0).

ลบรายการออกจากอาร์เรย์ใน PowerShell

ตอนนี้ให้เราดูวิธีการลบรายการออกจากอาร์เรย์ใน PowerShell โดยใช้วิธีการต่างๆ

นี่คือตัวอย่างของอาร์เรย์ PowerShell ซึ่งมีบางรายการดังนี้:

$myArray = @(1, 2, 3, 4, 5)

ซึ่งจะสร้างอาร์เรย์ที่มีจำนวนเต็มห้าตัวใน PowerShell

1. การใช้ $Null วิธีการมอบหมาย

วิธีที่ง่ายที่สุดวิธีหนึ่งในการลบรายการออกจากอาร์เรย์ใน PowerShell คือการกำหนด $Null ให้กับดัชนีที่คุณต้องการลบ:

$myArray = @(1, 2, 3, 4, 5)
$myArray[2] = $Null  # This will remove the item at index 2

คุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง

อย่างไรก็ตาม การดำเนินการนี้ไม่ได้ลบรายการออกทั้งหมด โดยจะแทนที่รายการด้วยค่า $Null หากต้องการลบรายการออกทั้งหมด คุณจะต้องกรองออก:

$myArray = @(1, 2, 3, 4, 5)
$myArray = $myArray | Where-Object { $_ -ne $Null }

2. โดยการสร้างอาร์เรย์ใหม่

หากคุณกำลังจัดการกับอาร์เรย์ที่มีขนาดคงที่ คุณจะไม่สามารถลบรายการออกจากอาร์เรย์ PowerShell ได้โดยตรง แต่คุณสร้างอาร์เรย์ใหม่ที่ยกเว้นรายการที่คุณต้องการลบแทน:

$myArray = @(1, 2, 3, 4, 5)
$myArray = $myArray[0..1] + $myArray[3..4]  # This will exclude the item at index 2

วิธีการนี้เกี่ยวข้องกับการต่อส่วนของอาเรย์ดั้งเดิมเข้าด้วยกัน โดยละเว้นองค์ประกอบที่คุณต้องการลบ

ฉันได้รันสคริปต์โดยใช้โค้ด VS และคุณสามารถดูผลลัพธ์ได้ในภาพหน้าจอด้านล่าง:

3. การใช้ ArrayLists

อีกวิธีหนึ่งในการลบรายการออกจากอาร์เรย์คือการใช้ PowerShell ArrayList ซึ่งเป็นอาร์เรย์แบบไดนามิกที่ให้วิธีการเพิ่มและลบรายการ:

$myArray = @(1, 2, 3, 4, 5)
$arrayList = New-Object System.Collections.ArrayList
$arrayList.AddRange($myArray)  # Add the items of $myArray to $arrayList
$arrayList.Remove(3)  # This will remove the first occurrence of the value 3

ArrayLists ไม่ใช่อาร์เรย์ต่อตัว แต่จะมีประโยชน์มากเมื่อคุณต้องการจัดการคอลเลกชันของรายการแบบไดนามิก

4. การใช้วิธี RemoveAt

หากคุณทราบดัชนีของรายการที่คุณต้องการลบ คุณสามารถใช้วิธี RemoveAt ของ ArrayList ได้ดังนี้

$arrayList.RemoveAt(2)  # This will remove the item at index 2

วิธีนี้มีเฉพาะสำหรับ ArrayLists และไม่สามารถใช้กับอาร์เรย์ PowerShell ปกติได้

ลองดูตัวอย่างบางส่วนของการลบรายการออกจากอาร์เรย์ใน PowerShell

ลบรายการออกจาก PowerShell Array ตามค่า

อาจมีสถานการณ์ที่คุณอาจต้องลบรายการออกจากอาร์เรย์ PowerShell ตามค่า นี่คือสคริปต์ PowerShell ที่สมบูรณ์ซึ่งจะลบรายการทั้งหมดของค่า 3

$myArray = @(1, 2, 3, 4, 5)
$myArray = $myArray | Where-Object { $_ -ne 3 }  # Removes all occurrences of the value 3

ลบรายการออกจากอาร์เรย์ใน PowerShell ตามดัชนี

นี่เป็นอีกตัวอย่างหนึ่งที่ฉันต้องลบรายการออกจากอาร์เรย์ใน PowerShell ตามดัชนี

$myArray = @(1, 2, 3, 4, 5)
$indexToRemove = 2
$myArray = $myArray[0..($indexToRemove-1)] + $myArray[($indexToRemove+1)..($myArray.Length-1)]

บทสรุป

การลบรายการออกจากอาร์เรย์ใน PowerShell สามารถทำได้หลายวิธี ขึ้นอยู่กับว่าคุณกำลังทำงานกับอาร์เรย์ขนาดคงที่หรือต้องการความสามารถแบบไดนามิกเพิ่มเติม

ในบทช่วยสอน PowerShell นี้ ฉันได้อธิบายวิธีลบรายการออกจากอาร์เรย์ใน PowerShell โดยใช้วิธีด้านล่าง:

  1. การใช้วิธีมอบหมาย $Null
  2. โดยการสร้างอาร์เรย์ใหม่
  3. การใช้ ArrayList
  4. ใช้วิธี RemoveAt

ฉันได้อธิบายตัวอย่างด้านล่างด้วย:

  • ลบรายการออกจาก PowerShell Array ตามค่า
  • ลบรายการออกจากอาร์เรย์ใน PowerShell ตามดัชนี

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