只有一个条目的多维数组

时间:2016-01-09 20:57:17

标签: powershell

我编写了一个通用函数来调用存储过程。我试图使用多维数组来传递参数。现在有可能,该过程只接受一个参数,所以我的多维数组也只有一个参数。 但是这样一个阵列的长度是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

有什么理由吗?我错过了什么吗?

1 个答案:

答案 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