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

วิธีตรวจสอบว่าอาร์เรย์มีค่ามากกว่าหนึ่งค่าใน PowerShell หรือไม่


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

หากต้องการตรวจสอบว่าอาร์เรย์มีค่ามากกว่าหนึ่งค่าใน PowerShell หรือไม่ คุณสามารถประเมินจำนวนอาร์เรย์ได้ ใช้เงื่อนไข $array.Count -gt 1 เพื่อตรวจสอบว่าอาร์เรย์มีมากกว่าหนึ่งองค์ประกอบหรือไม่ หากผลลัพธ์เป็น $true อาร์เรย์จะมีค่าหลายค่า ถ้า $false จะไม่มีหรือว่างเปล่า

ตรวจสอบว่าอาร์เรย์มีค่ามากกว่าหนึ่งค่าใน PowerShell หรือไม่

อาร์เรย์เป็นโครงสร้างข้อมูลที่เก็บคอลเลกชันของรายการ รายการเหล่านี้อาจเป็นประเภทเดียวกันหรือต่างกันก็ได้ ใน PowerShell การสร้างอาร์เรย์ทำได้ง่ายเพียงแค่กำหนดค่าหลายค่าให้กับตัวแปร:

$array = 1, 2, 3, 4, 5

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

1. โดยการตรวจสอบขนาดอาร์เรย์

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

$array = 1, 2, 3
if ($array.Count -gt 1) {
    "Array contains more than one value."
} else {
    "Array contains one or no values."
}

ในตัวอย่างข้างต้น -gt มีค่ามากกว่าตัวดำเนินการ และ Count ส่งคืนจำนวนองค์ประกอบในอาร์เรย์ หากอาร์เรย์มีมากกว่าหนึ่งองค์ประกอบ เงื่อนไขจะประเมินเป็น $true

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

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

เช่นเดียวกับคุณสมบัติ Count คุณสามารถใช้คุณสมบัติ Length เพื่อกำหนดจำนวนองค์ประกอบในอาร์เรย์ใน PowerShell

$array = 'PowerShell', 'Scripting'
if ($array.Length -gt 1) {
    "Array contains more than one value."
} else {
    "Array contains one or no values."
}

คุณสมบัติทั้ง Length และ Count จะให้จำนวนองค์ประกอบทั้งหมดในอาร์เรย์

3. โดยการตรวจสอบค่าเฉพาะ

หากคุณสนใจที่จะตรวจสอบค่าเฉพาะภายในอาร์เรย์ คุณสามารถใช้ตัวดำเนินการ -contains ได้ โอเปอเรเตอร์นี้ช่วยให้คุณกำหนดได้ว่าอาร์เรย์มีค่าใดค่าหนึ่งหรือไม่:

$array = 'Windows', 'Linux', 'macOS'
if ($array -contains 'Linux') {
    "Array contains the value 'Linux'."
} else {
    "Array does not contain the value 'Linux'."
}

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

4. โดยใช้ฟังก์ชันแบบกำหนดเอง

สำหรับสถานการณ์ขั้นสูง คุณอาจต้องการสร้างฟังก์ชันแบบกำหนดเองที่ห่อหุ้มตรรกะสำหรับการตรวจสอบว่าอาร์เรย์มีค่าที่ไม่ซ้ำกันมากกว่าหนึ่งค่าหรือไม่ นี่เป็นฟังก์ชันง่ายๆ ที่ทำอย่างนั้น:

function Test-MultipleValues {
    param(
        [array]$Array
    )
    if ($Array.Count -gt 1 -and ($Array | Select-Object -Unique).Count -gt 1) {
        return $true
    }
    return $false
}

# Usage
$array = 'A', 'A', 'B', 'C'
if (Test-MultipleValues -Array $array) {
    "Array contains more than one unique value."
} else {
    "Array contains one or no unique values."
}

ในฟังก์ชันนี้ Select-Object -Unique ใช้เพื่อกรองอาร์เรย์ให้เป็นค่าที่ไม่ซ้ำก่อนที่จะนับ

บทสรุป

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

ในบทช่วยสอน PowerShell นี้ ฉันได้อธิบายวิธีการต่างๆ เพื่อตรวจสอบว่าอาร์เรย์มีค่ามากกว่าหนึ่งค่าใน PowerShell หรือไม่

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