0

私が遭遇したすべての例で、パイプラインモナドは割り当てが行われたときにのみ壊れています。あれは:

$result = ls | %{$_.FullName} | select -first

割り当てがない場合、上記のステートメントの出力は、( の使用によりselect -first) 1 つのアイテムのパイプラインになり、デフォルトで に書き込みwrite-hostます。

結果を変数または同等のものに代入せずに単一の値になるようにパイプライン モナドを壊すことは可能ですか (たとえば、文字列を受け入れるコマンドレットに結果を引数として渡す)。

(私が求めているものに相当する LINQ は、最初の実際の値を返すことによってモナドFirst()を壊します)IEnumerable

注: この質問への回答は実用的ではありません。単に学術的なものです。

4

1 に答える 1

0

編集ローマンは正しいです。そもそもそれがどのように機能したのかわかりません。更新しました。

最も簡単な方法は、最初のアイテムにアクセスすることです。

( @{Value = 1}, @{Value = 2} )[0].Value

アイテムがない場合、どちらが優雅に向きますか:

@()[0].Value
于 2012-05-04T12:08:04.747 に答える