Что означает выражение
[System.Collections.Generic.List[Hashtable]]$messages = @()
Объяснение
Элемент | Описание |
---|---|
[System.Collections.Generic.List[Hashtable]] | Объявление переменной как списка (`List`) хеш-таблиц (`Hashtable`) из .NET |
$messages | Имя переменной |
=@() | Инициализация пустым списком |
Это означает, что создаётся пустой список, каждый элемент которого будет хеш-таблицей. Такой список удобен для работы с коллекцией структурированных данных (например, писем, логов и т.п.).
Зачем использовать List[Hashtable], а не обычный массив @()?
- Быстрее работает при добавлении данных
- Имеет удобные методы: 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)" }