Does powershell have associative arrays?

2019-01-23 23:21发布

I am writing a function that returns an id, name pair.

I would like to do something like

$a = get-name-id-pair()
$a.Id
$a.Name

like is possible in javascript. Or at least

$a = get-name-id-pair()
$a["id"]
$a["name"]

like is possible in php. Can I do that with powershell?

8条回答
Deceive 欺骗
2楼-- · 2019-01-23 23:49

Create From JSON String

$people= '[
{
"name":"John", 
"phone":"(555) 555-5555"
},{
"name":"Mary", 
"phone":"(444) 444-4444"
}
]';

# Convert String To Powershell Array
$people_obj = ConvertFrom-Json -InputObject $people;

# Loop through them and get each value by key.
Foreach($person in $people_obj ) {
    echo $person.name;
}
查看更多
成全新的幸福
3楼-- · 2019-01-23 23:52
PS C:\> $a = @{}                                                      
PS C:\> $a.gettype()                                                  

IsPublic IsSerial Name                                     BaseType            

-------- -------- ----                                     --------            

True     True     Hashtable                                System.Object       

So a hashtable is an associative array. Ohhh.

Or:

PS C:\> $a = [Collections.Hashtable]::new()
查看更多
登录 后发表回答