フィルタリングしたいギザギザの配列 $h があります。これを行う 1 つの方法は、次の例のように、パイプラインでパイプラインを使用することです。
$h = ((‘a’,’b’,’a’), (‘c’,’d’), (‘a’, ‘f’))
$h | foreach {$_ | Where-Object {$_ -Like 'a'} } | foreach { if ($_.Count -gt 0) {<% DO SOMETHING %> }}
ご覧のとおり、foreach {} ステートメントで新しいパイプラインを開始しようとしていますが、外側のパイプラインに干渉しないことを願っていますが、干渉しています。出力はギザギザの配列ではなく、文字列で構成される単純な 1 次元配列になります。(‘a’,’a’,’a’)
私が見たかったのは((‘a’,’a’),’a’)
.
実際には、「a」、「b」などはプロパティを持つカスタム オブジェクトであり、ギザギザ配列 $h の配列にグループ化されています。
これを解決する最もエレガントな方法は何ですか?