PowerShell 3.0 CTP1 представляет новую функцию [ordered]
, которая в некотором роде является сокращением для OrderedDictionary
. Я не могу представить его практическое применение. Почему эта функция действительно полезна? Может ли кто-нибудь привести несколько полезных примеров?
Пример: это, ИМХО, скорее демонстрационный случай, чем практический:
$a = [ordered]@{a=1;b=2;d=3;c=4}
(Я не против, если он еще пригодится, тогда я просто ищу другие полезные случаи).
Я не ищу варианты использования OrderedDictionary
, это действительно полезно. Но мы можем использовать его прямо в версии 2.0 (и я часто это делаю). Я пытаюсь понять, зачем эта новая функция [ordered]
нужна дополнительно.
Собраны варианты использования из ответов:
$hash = [ordered]@{}
короче, чем
$hash = New-Object System.Collections.Specialized.OrderedDictionary
Н.Б. ordered
не является настоящим сокращением для типа. New-Object ordered
не работает.
Н.Б. 2: Но это все еще хороший ярлык, потому что (я думаю, не могу попробовать) он создает типичный для PowerShell словарь без учета регистра. Эквивалентная команда в версии 2.0 действительно слишком длинная:
New-Object System.Collections.Specialized.OrderedDictionary]([System.StringComparer]::OrdinalIgnoreCase)
$hash = New-Object System.Collections.Specialized.OrderedDictionary
- person manojlds   schedule 18.10.2011[xml]
,[datetime]
,[hashtable]
и многих других, включая[int]
, ведь они называются ускорителями. - person manojlds   schedule 18.10.2011[ordered]@{}
с пустой хеш-таблицей (я не считаю пример с жестко заданными значениями действительно полезным). Я бы не стал добавлять фичу только для этого. Я должен упустить что-то еще полезное, поэтому я задал вопрос. - person Roman Kuzmin   schedule 18.10.2011Ordered
с жестко заданными значениями было бы полезно это решено. Но до тех пор[ordered]@{}
(с пустыми хэшами) кажется единственным полезным случаем. Этот ответ принят. - person Roman Kuzmin   schedule 18.10.2011[ordered]
, я, наконец, нашел его очень полезным. Еще одним вариантом использования является, скажем, PSON (JSON-подобные данные в PowerShell). Мне не нравится, хотя этот многословный и запутанный (как мы видели) синтаксис[ordered]@{...}
. - person Roman Kuzmin   schedule 11.05.2012[PSCustomObject]@{}
. Это не просто кастинг из Hashtable (что в любом случае не сработает, потому что Hashtable уже потерял бы порядок). Вы можете доказать это, попробовав использовать@{}
и[Ordered]
в отдельных заданиях. - person Josh   schedule 02.10.2012