配列のflatten
配列において
((1,2), (3,4))→(1, 2, 3, 4)
とflattenするメソッドを追加してみた。
<?xml version="1.0" encoding="utf-8" ?> <Types> <Type> <Name>System.Array</Name> <Members> <ScriptMethod> <Name>Flatten</Name> <Script> function _flatten { $args[0] | % { if($_ -is 'Array') { _flatten $_ } else { $_ } } } _flatten $this </Script> </ScriptMethod> </Members> </Type> </Types>
型データディレクトリ$typedirを適当に作成し、上の内容をSystem.Array.ps1xmlで保存し、プロファイルで
Update-Typedata -PrependPath $typedir\System.Array.ps1xml
とすれば使える。
サンプル
> ((1,2),(3,4))[1] 3 4 > ((1,2),(3,4)).Flatten()[1] 2