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