以下は期待どおりに機能します。
$values = @( ("a", "b"), ("c", "d") )
foreach($value in $values)
{
write-host "Value 0 =" $value[0]
write-host "Value 1 =" $value[1]
}
その結果(1):
Value 0 = a
Value 1 = b
Value 0 = c
Value 1 = d
しかし、$values 変数を次のように変更すると:
$values = @( ("a", "b") )
結果(2)は次のとおりです。
Value 0 = a
Value 1 =
Value 0 = b
Value 1 =
一方、結果(3)は次のようになると予想していました。
Value 0 = a
Value 1 = b
$value を次のように変更します。
$values = @( ("a"), ("b") )
上記の result(2) と同じ結果が得られます。これらは非常に異なるデータ表現です。
私が書いているスクリプトは、最初の次元の長さが 0 から N までの 2 次元配列を処理できる必要があります。最初のレベルの要素を追加する必要がある場合 (または削除) スクリプトのロジックを変更する必要はありません。「データ」を編集できるようにしたいのですが。
だから私の質問は次のとおりです: 配列の最初の次元の長さが 1 のときに、示されているforeachループが正しく機能するように、2 次元配列をどのように表記しますか?
get-host は次のように応答します。
Name : ConsoleHost
Version : 2.0
InstanceId : 2338657f-e474-40d8-9b95-7e2b5f6a8acf
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace