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