字典可以有很多个keyword, 每一个字典都可以放到列表:
这边是一个列子:
[System.Collections.Generic.List[Object]]$mList = @{};
[System.Collections.Generic.Dictionary[String,Object]]$mDic = @{};
$mDic["day"] = "0900";
$mDic["night"] = "2100";
$mList.Add($mDic);
$mDic["day"] = "1100";
$mDic["night"] = "2300";
$mList.Add($mDic);
foreach ($t in $mList){
Write-Host $t["day"]
Write-Host $t["night"]
}
这边会有一个问题,输出的value都是1100 2300:
其实在第一个$mList.Add($mDic);的时候,$mlist的value还是0900 2100,
但是二次赋值$mList.Add($mDic);的时候,$mlist的值会随$mDic的值的改变而改变,这是因为$mDic的传递方式是址传递,如果我们想要
每次传递的day 和 night不影响上一个传递,我们可以每次都create $mDic:
[System.Collections.Generic.List[Object]]$mList = @{};
[System.Collections.Generic.Dictionary[String,Object]]$mDic = @{};
$mDic["day"] = "0900";
$mDic["night"] = "2100";
$mList.Add($mDic);
[System.Collections.Generic.Dictionary[String,Object]]$mDic = @{};
$mDic["day"] = "1100";
$mDic["night"] = "2300";
$mList.Add($mDic);
foreach ($t in $mList){
Write-Host $t["day"]
Write-Host $t["night"]
}