[System.Collections.Generic.List[Hashtable]]$messages = @()
Элемент Описание
[System.Collections.Generic.List[Hashtable]] Объявление переменной как списка (`List`) хеш-таблиц (`Hashtable`) из .NET
$messages Имя переменной
=@() Инициализация пустым списком

Это означает, что создаётся пустой список, каждый элемент которого будет хеш-таблицей. Такой список удобен для работы с коллекцией структурированных данных (например, писем, логов и т.п.).

  • Быстрее работает при добавлении данных
  • Имеет удобные методы: Add(),Remove(),Clear(),Count и т.д.
  • Лучше совместим с .NET-методами и типизированным кодом
# Создание пустого списка хеш-таблиц
[System.Collections.Generic.List[Hashtable]]$messages = @()
 
# Первая запись
$entry = @{
    Sender = "admin@example.com"
    Subject = "Test message"
    Date   = (Get-Date)
}
$messages.Add($entry)
 
# Вторая запись
$messages.Add(@{
    Sender = "user@example.com"
    Subject = "Second message"
    Date   = (Get-Date).AddMinutes(-10)
})
 
# Вывод сообщений
foreach ($msg in $messages) {
    Write-Host "От: $($msg.Sender), Тема: $($msg.Subject), Дата: $($msg.Date)"
}