Powershell - 哈希表

哈希表将键/值对存储在哈希表中。 使用哈希表时,您可以指定用作键的对象以及要链接到该键的值。 一般我们使用字符串或者数字作为键。

本教程介绍如何声明哈希表变量、创建哈希表以及哈希表处理使用方法。

声明哈希表变量

要在程序中使用哈希表,您必须声明一个变量来引用该哈希表。 这是声明哈希表变量的语法 −

语法

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{} 

注意 −可以使用类似的语法创建有序字典。 有序字典保持条目添加的顺序,而哈希表则不然。

示例

以下代码片段是此语法的示例 −

$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}

打印哈希表。

$hash

输出

Name                           Value    
----                           -----                                                    
ID                             1                                                        
Color                          Blue                                                     
Shape                          Square 

哈希表值通过Key(键)访问。

> $hash["ID"]
 1

处理哈希表

点表示法可用于访问哈希表键或值。

> $hash.keys
ID
Color
Shape

> $hash.values
1
Blue
Square

示例

这是一个完整的示例,展示了如何创建、初始化和处理哈希表 −

$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}

write-host("Print all hashtable keys")
$hash.keys

write-host("Print all hashtable values")
$hash.values

write-host("Get ID")
$hash["ID"]

write-host("Get Shape")
$hash.Number

write-host("print Size")
$hash.Count

write-host("Add key-value")
$hash["Updated"] = "Now"

write-host("Add key-value")
$hash.Add("Created","Now")

write-host("print Size")
$hash.Count

write-host("Remove key-value")
$hash.Remove("Updated")

write-host("print Size")
$hash.Count

write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key

这将产生以下结果 −

输出

Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key

Name                           Value                                                                                                   
----                           -----                                                                                                   
Color                          Blue                                                                                                    
Created                        Now                                                                                                     
ID                             1                                                                                                       
Shape                          
Square