Учебники

Powershell — Hashtables

Hashtable хранит пары ключ / значение в хеш-таблице. При использовании Hashtable вы указываете объект, который используется в качестве ключа, и значение, которое вы хотите связать с этим ключом. Обычно мы использовали строку или числа в качестве ключей.

В этом руководстве рассказывается, как объявлять хеш-таблицы, создавать хеш-таблицы и обрабатывать хеш-таблицы с использованием его методов.

Объявление хеш-переменных

Чтобы использовать хеш-таблицу в программе, вы должны объявить переменную для ссылки на хеш-таблицу. Вот синтаксис для объявления хеш-переменной:

Синтаксис

$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 

Доступ к значениям хеш-таблицы осуществляется через ключи .

> $hash["ID"]
 1

Обработка Hashtable

Точечная нотация может использоваться для доступа к ключам или значениям хеш-таблиц.

> $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

Это даст следующий результат —