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

ตรวจสอบว่า Array ว่างเปล่าใน PowerShell หรือไม่ [4 วิธี]


1. บทนำ

ใน PowerShell การพิจารณาว่าอาร์เรย์ว่างเปล่าหรือไม่ถือเป็นงานพื้นฐานที่มักพบในการเขียนสคริปต์ อาร์เรย์ "ว่าง" ในที่นี้หมายถึงอาร์เรย์ที่ไม่มีองค์ประกอบ

ตัวอย่างเช่น เมื่อกำหนดอาร์เรย์ $myArray เป้าหมายของเราคือการตรวจสอบว่าอาร์เรย์ว่างเปล่าและดำเนินการตามนั้น

ในบทความนี้ เราจะดูวิธีต่างๆ ในการตรวจสอบว่า Array ว่างเปล่าใน PowerShell หรือไม่

2. อาเรย์ว่างคืออะไร?

อาร์เรย์ว่างคืออาร์เรย์ที่ไม่มีองค์ประกอบ ความยาวของอาร์เรย์ว่างเป็นศูนย์

ตัวอย่างต่อไปนี้สร้างอาร์เรย์ว่างใน PowerShell

อาร์เรย์ว่าง:

$myArray = @()

3. การใช้คุณสมบัติการนับ

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

คำสั่งแสดงจำนวนองค์ประกอบในอาร์เรย์คือ:

นับอาร์เรย์:

$myArray.count

ถ้าอาร์เรย์ว่างเปล่า จำนวนองค์ประกอบจะเป็นศูนย์ หากไม่ว่างเปล่า จำนวนองค์ประกอบจะมากกว่า 0

เราสามารถใช้เงื่อนไขนี้ในคำสั่ง if เพื่อตรวจสอบว่าอาร์เรย์ว่างเปล่าหรือไม่

นับอาร์เรย์:

$myArray = @()
if ($myArray.count -eq 0){
Write-Host "The array is empty."
}
else{
Write-Host "The array is not empty."
}

บล็อก if จะดำเนินการเฉพาะเมื่อ $array.count เท่ากับศูนย์

เอาท์พุต :

เอาท์พุต :

The array is empty.

วิธีนี้รวดเร็วและมีประสิทธิภาพมากสำหรับอาร์เรย์ทุกขนาด

ตอนนี้ เรามารันสคริปต์ด้วยอาร์เรย์ที่ไม่ว่างกัน

นับอาร์เรย์:

$myArray = @("One", 2, "Three")
if ($myArray.count -eq 0){
Write-Host "The array is empty."
}
else{
Write-Host "The array is not empty."
}

เอาท์พุต :

เอาท์พุต :

The array is not empty.

4. การใช้คุณสมบัติความยาว

อีกวิธีในการตรวจสอบว่าอาร์เรย์ว่างเปล่าหรือไม่คือการใช้คุณสมบัติ Length คล้ายกับ Count หนึ่ง

ความยาวของอาเรย์:

$myArray = @()
if ($myArray.length -eq 0){
Write-Host "The array is empty."
}
else{
Write-Host "The array is not empty."
}

เอาท์พุต :

เอาท์พุต :

The array is empty.

ที่นี่ $myArray.length ส่งคืนจำนวนองค์ประกอบในอาร์เรย์ เนื่องจากเราได้เตรียมใช้งานอาร์เรย์ด้วยองค์ประกอบ 0 จึงจะส่งกลับ 0

5. การใช้ LINQ

สำหรับสถานการณ์ขั้นสูง โดยเฉพาะอย่างยิ่งเมื่อจัดการกับชุดข้อมูลขนาดใหญ่ หรือเมื่อเราใช้ LINQ สำหรับการดำเนินการอื่นๆ อยู่แล้ว เราสามารถใช้ LINQ เพื่อตรวจสอบอาร์เรย์ว่างได้

การใช้ LINQ:

$myArray = @()
if ([System.Linq.Enumerable]::Count($myArray) -eq 0) {
    "Array is empty"
} else {
    "Array is not empty"
}

วิธีการ Count() ของ LINQ ใช้เพื่อนับองค์ประกอบในอาร์เรย์

6. การใช้ฟังก์ชันแบบกำหนดเอง

เราสามารถสร้างฟังก์ชั่นแบบกำหนดเองได้ในกรณีที่เราต้องตรวจสอบอาร์เรย์ว่างบ่อยๆ

การใช้ฟังก์ชันแบบกำหนดเอง:

function isEmptyArray($array) {
    return $array.Count -eq 0
}

$myArray = @()
if (isEmptyArray $myArray) {
    "Array is empty"
} else {
    "Array is not empty"
}

วิธีนี้แนะนำเฉพาะกับสคริปต์ที่มีการตรวจสอบความว่างเปล่าบ่อยครั้ง และเพื่อปรับปรุงความสามารถในการดูแลรักษาสคริปต์

7. บทสรุป

ในบทความนี้ เราได้กล่าวถึงหลายวิธีในการตรวจสอบว่า Array ว่างเปล่าใน PowerShell หรือไม่

สำหรับสถานการณ์ส่วนใหญ่ การใช้คุณสมบัติการนับหรือความยาวจะให้วิธีแก้ปัญหาที่ตรงไปตรงมาและมีประสิทธิภาพ

LINQ นำเสนอทางเลือกขั้นสูง โดยเฉพาะอย่างยิ่งมีประโยชน์ในสคริปต์ที่ซับซ้อนหรือชุดข้อมูลขนาดใหญ่ การสร้างฟังก์ชันที่กำหนดเองสามารถปรับปรุงโค้ดของคุณให้มีประสิทธิภาพยิ่งขึ้น ทำให้สามารถอ่านและบำรุงรักษาได้มากขึ้น

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