我编写了一个通用函数来调用存储过程。我试图使用多维数组来传递参数。现在有可能,该过程只接受一个参数,所以我的多维数组也只有一个参数。 但是这样一个阵列的长度是2 !
$MyParameters = ("param1_name", "param1_value")
$MyParameters.Length
返回 2 !!奇怪,为什么?它应该返回 1
$MyParameters
正确返回:
param1_name
param1_value
如果我写:
$MyParameters = ("param1_name", "param1_value"), ("param2_name", "param2_value")
$MyParameters.Length
返回也 2这是正确的。 $MyParameters
正确返回所有四个元素:
param1_name
param1_value
param2_name
param2_value
有什么理由吗?我错过了什么吗?
答案 0 :(得分:0)
您要做的是创建一个多值对象数组。
以下是解决该问题的示例:
$x = ,("param1","param2","param3")
x.Lenght
将返回 1 ,这对您的问题是正确的。
$x = ,("param1","param2","param3"),("param1","param2","param3")
x.Lenght
将返回 2
$x = ,("param1","param2","param3"),("param1","param2","param3")
x[0].Lenght
将返回 1 ,这是因为$ x [0]是包含一个元素的数组。
此外,如果您想创建一个阵列数组,可以这样做:
$x = @("param1","param2","param3"),@("param1","param2","param3")
$x.Lenght
#2
$x[0].Lenght
#3