2

フィルタリングしたいギザギザの配列 $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 の配列にグループ化されています。

これを解決する最もエレガントな方法は何ですか?

4

1 に答える 1