4

(これは重複しているように聞こえますが、聞いてください)

次のコードが与えられた場合Select-Object、LINQ の と同等の場合Select、出力は次のようになります。@("o", "n", "e")

"one", "two" | %{$_.GetCharArray()} | select -first 1

ただし、出力は"o"であるため、実際には がではなくSelect-ObjectLINQ と同じように動作することがわかります。SelectManySelect

非常に多くの質問があります: SelectPowerShell に直接相当するもの (つまり、パイプラインでコレクションをマージしないもの) はありますか?

4

2 に答える 2

9

これは、パイプラインによって取得され、パイプラインに送信されたselect配列のアンロールに関するものではありません。ToCharArray()標準を使用して期待される結果を得るselectには、展開を防止する必要があります。これは通常,、単一の項目を持つ配列を返す単項演算子を使用して行われます。この場合、これらの項目は配列そのものです。それらは展開されず、そのままパイプラインに送られます。したがって、select -first 13 つの項目を持つ配列である最初の項目を選択します。

"one", "two" | %{, $_.ToCharArray()} | select -first 1

これにより、o、n、e の 3 つの項目が得られます。

于 2012-05-04T11:34:58.877 に答える
0

JoshEinsteinの作品をご覧ください。

モジュールをロードした後、PowerShellで同様の.netLINQsintaxを使用できます

于 2012-05-04T11:10:04.850 に答える