อาร์เรย์ PowerShell ของ Hashtables
ในการเขียนสคริปต์ PowerShell โครงสร้างข้อมูลมีความสำคัญในการจัดระเบียบและจัดการข้อมูล โครงสร้างสองแบบที่ใช้กันอย่างแพร่หลายคืออาร์เรย์และแฮชเทเบิล แม้ว่าอาร์เรย์จะเป็นชุดของรายการ แต่ hashtable คือชุดของคู่คีย์-ค่า เมื่อรวมโครงสร้างทั้งสองนี้เข้าด้วยกัน เราสามารถสร้างเครื่องมืออันทรงพลังที่เรียกว่าอาร์เรย์ของแฮชเทเบิลได้ ในบทช่วยสอน PowerShell นี้ ฉันจะอธิบายว่าอาร์เรย์ของแฮชเทเบิลคืออะไร รวมถึงวิธีสร้างและจัดการอาร์เรย์เหล่านั้นด้วยตัวอย่าง
ใน PowerShell อาร์เรย์ของ hashtables คือคอลเลกชันที่แต่ละองค์ประกอบเป็น hashtable ซึ่งช่วยให้มีโครงสร้างข้อมูลที่ซับซ้อนด้วยคู่คีย์-ค่า คุณสามารถสร้างได้โดยการกำหนดอาร์เรย์และเพิ่มแฮชเทเบิลลงไปโดยใช้ตัวดำเนินการ += หรือไวยากรณ์ตามตัวอักษรของอาร์เรย์ โครงสร้างนี้มีประโยชน์สำหรับการจัดเก็บชุดข้อมูลที่เกี่ยวข้องในลักษณะที่มีการจัดระเบียบและเข้าถึงได้
Hashtable ใน PowerShell คืออะไร
แฮชเทเบิลคือโครงสร้างข้อมูลที่จัดเก็บข้อมูลในรูปแบบของคู่คีย์-ค่า แต่ละรายการในแฮชเทเบิลมีคีย์เฉพาะที่เกี่ยวข้องกับค่า ทำให้ง่ายต่อการดึงหรืออัปเดตค่าตามคีย์ มักจะถูกเปรียบเทียบกับพจนานุกรมหรืออาเรย์แบบเชื่อมโยงเนื่องจากความสัมพันธ์ของคีย์-ค่านี้
อาร์เรย์ใน PowerShell คืออะไร
ในทางกลับกัน อาร์เรย์ใน PowerShell คือชุดของรายการที่จัดเก็บไว้ในตำแหน่งหน่วยความจำที่อยู่ติดกัน องค์ประกอบของอาร์เรย์ได้รับการจัดทำดัชนี ซึ่งหมายความว่าแต่ละตำแหน่งในอาร์เรย์จะมีดัชนีตัวเลขเริ่มต้นจาก 0
รวม Hashtables และ Arrays ใน PowerShell
อาร์เรย์ของแฮชเทเบิลใน PowerShell เป็นเพียงอาร์เรย์ที่แต่ละองค์ประกอบเป็นแฮชเทเบิล โครงสร้างนี้มีประโยชน์อย่างเหลือเชื่อเมื่อคุณต้องการจัดเก็บข้อมูลที่เกี่ยวข้องหลายชุด
สร้างอาร์เรย์ของ Hashtables
หากต้องการสร้างอาร์เรย์ของแฮชเทเบิลใน PowerShell คุณต้องเข้าใจวิธีสร้างแฮชเทเบิลเดี่ยวและอาร์เรย์ก่อน ต่อไปนี้เป็นวิธีสร้างแฮชเทเบิลแบบง่าย:
$hashtable = @{
Key1 = 'Value1'
Key2 = 'Value2'
Key3 = 'Value3'
}หากต้องการสร้างอาร์เรย์ คุณสามารถทำสิ่งต่อไปนี้:
$array = @('Item1', 'Item2', 'Item3')ตอนนี้ เพื่อสร้างอาร์เรย์ของแฮชเทเบิล คุณต้องรวมสองแนวคิดเข้าด้วยกัน:
$arrayOfHashtables = @(
@{
Key1 = 'Value1'
Key2 = 'Value2'
},
@{
Key3 = 'Value3'
Key4 = 'Value4'
}
)ในตัวอย่างนี้ $arrayOfHashtables เป็นอาร์เรย์ที่มีสององค์ประกอบ ซึ่งแต่ละองค์ประกอบเป็น hashtable
เข้าถึงข้อมูลในอาร์เรย์ของ Hashtables
ในการเข้าถึงข้อมูลในอาร์เรย์ของแฮชเทเบิล คุณจะต้องระบุดัชนีของอาร์เรย์ ตามด้วยคีย์ของแฮชเทเบิล ตัวอย่างเช่น:
$arrayOfHashtables = @(
@{
Key1 = 'Value1'
Key2 = 'Value2'
},
@{
Key3 = 'Value3'
Key4 = 'Value4'
}
)
# Access the value of Key1 in the first hashtable
$value = $arrayOfHashtables[0].Key1เมื่อคุณรันโค้ดแล้ว คุณจะเห็นผลลัพธ์ในภาพหน้าจอด้านล่าง:
การเพิ่มและการลบรายการ
หากต้องการเพิ่ม hashtable ใหม่ให้กับอาร์เรย์ คุณสามารถใช้ตัวดำเนินการ +=:
$arrayOfHashtables += @{
Key5 = 'Value5'
Key6 = 'Value6'
}หากต้องการลบรายการออกจากอาร์เรย์ คุณสามารถใช้วิธี Remove หากคุณทราบดัชนี:
$arrayOfHashtables = $arrayOfHashtables | Where-Object { $_ -ne $arrayOfHashtables[1] }สิ่งนี้จะลบแฮชเทเบิลตัวที่สองออกจากอาร์เรย์
แก้ไข Hashtables ในอาร์เรย์
หากต้องการแก้ไขแฮชเทเบิลภายในอาร์เรย์ ให้เข้าถึงแฮชเทเบิลด้วยดัชนี จากนั้นใช้คีย์เพื่อแก้ไขค่า:
# Change the value of Key2 in the first hashtable
$arrayOfHashtables[0].Key2 = 'NewValue2'วนซ้ำอาร์เรย์ของ Hashtables
คุณสามารถวนซ้ำแต่ละแฮชเทเบิลในอาร์เรย์ได้โดยใช้ลูป foreach:
foreach ($hashtable in $arrayOfHashtables) {
foreach ($key in $hashtable.Keys) {
$value = $hashtable[$key]
Write-Host "$key: $value"
}
}สิ่งนี้จะพิมพ์คู่คีย์-ค่าทั้งหมดในแต่ละแฮชเทเบิล
ตัวอย่างการปฏิบัติของอาร์เรย์ของ Hashtables ใน PowerShell
ลองพิจารณาตัวอย่างเชิงปฏิบัติที่เรามีรายชื่อพนักงานและคุณลักษณะของพวกเขาที่จัดเก็บเป็นแฮชเทเบิลในอาร์เรย์ใน PowerShell:
$employees = @(
@{
Name = 'John Doe'
Department = 'IT'
Position = 'Developer'
},
@{
Name = 'Jane Smith'
Department = 'HR'
Position = 'Recruiter'
}
)หากต้องการค้นหาตำแหน่งพนักงานที่เฉพาะเจาะจง คุณสามารถดำเนินการดังต่อไปนี้:
$employeeName = 'John Doe'
$position = ($employees | Where-Object { $_.Name -eq $employeeName }).Position
Write-Host "The position of $employeeName is $position."บทสรุป
อาร์เรย์ของแฮชเทเบิลใน PowerShell มีประโยชน์ในการจัดเก็บข้อมูลที่ซับซ้อน ช่วยให้คุณจัดการคอลเลกชันของคู่คีย์-ค่าได้อย่างมีประสิทธิภาพ โดยสามารถเข้าถึง เพิ่ม ลบ และแก้ไขข้อมูลได้อย่างง่ายดาย
ในบทช่วยสอน PowerShell นี้ ฉันได้อธิบายทุกอย่างเกี่ยวกับ อาร์เรย์ PowerShell ของ Hashtables แล้ว
