PowerShellでは、IEnumerable[]
は相性悪いわけですが、シーケンスを平坦にしたいものはしたく。
PowerShellの標準出力の配列は展開される
特性を使うと、あたかも標準出力の配列は展開される
が平坦化してるように見えますがびみょーんです。
なので、Zipに続きSelectManyを書いてみました。だれかー、おしえてくだされ~。
https://github.com/guitarrapc/PowerShellUtil/blob/master/LINQ/New-Zip.ps1
コード
本コードは PowerShell 4.0 以上限定です
GitHubに公開しておきます。
https://github.com/guitarrapc/PowerShellUtil/blob/master/LINQ/New-SelectMany.ps1
サンプルとかはここに
いつ使うの
久々にActiveDirectoryをちょろろんっと触ってるんですが、OUとか深くなった時のSearchBase
をDN, OUで自動生成しています。
が、しかしOUが深くなった時にみなさんどうしてるんですかね? OUを入力シーケンスとみなし時に、SearchBase
はフラットな階層として表現する必要があるので平坦化が欲しいと思うんですが....ということでそういう使い方してます。
対象のOUに対して、親OUが配列で入ってきたりして平坦化がほしくて。
ActiveDirectoryはモジュールを作ってコード化していますが、AD用のPowerShellモジュールの出来がひどいことこの上ないですね....拡張ラッパーを涙ながら作ってます。
まとめ
そろそろLinq to PowerShell。。。。じゃないや、PSLinqを真面目に書く必要がありそう。というかないとつらいです。