我在Powershell中有一个特殊的案例,我不认为这会是一个问题,但显然,它是。
我从一个文件中读取了以下结构的数据:
$dict=[ordered]@{
"key1"=@(
"value1",
"value2",
"value3"
);
"key2"=@(
"value1",
"value2"
);
}
......等等。一个字典,它的键以字符串数组作为其值。当我试图迭代数组并用每个数组项生成另一个字符串时,字符串数组会“扁平化”为单个字符串。例如:
foreach($Key in $dictionary){
foreach($item in $Key.Values){
$newString="New string with $item"
$newString
}
}
输出(仅针对第一个键)为
"New string with value1 value2 value3"
而不是我所期望的
"New string with value1"
"New string with value2"
"New string with value3"
最奇怪的是,当我只打印出值而不生成新字符串时,它会单独打印每一项。
我真的不理解这种行为,从什么应该是一个非常基本的迭代。谁能给我解释一下为什么会发生这种情况,以及什么是正确的方式来做到这一点?
1条答案
按热度按时间neekobn81#
您需要枚举根数组:
或者使用它的实际键: