将List转换为Hashtable的最佳方法是什么?
说我有一个像("Key",$value,"Key2",$value2)
将它转换为Hashtable的最短语法是什么?
答案 0 :(得分:11)
Function ConvertTo-Hashtable($list) {
$h = @{}
while($list) {
$head, $next, $list = $list
$h.$head = $next
}
$h
}
ConvertTo-Hashtable ("Key",1,"Key2",2)
答案 1 :(得分:9)
尝试以下
$table = new-object System.Collections.Hashtable
for ( $i = 0; $i -lt $list.Length; $i += 2 ) {
$table.Add($list[$i],$list[$i+1]);
}
答案 2 :(得分:2)
怎么样:
$ht = @{}
$key = "";
("Key",5,"Key2",6) | foreach `
{
if($key)
{
$ht.$key = $_;
$key="";
} else
{$key=$_}
}
答案 3 :(得分:2)
$h = @{}
0..($l.count - 1) | ? {$_ -band 1} | % {$h.Add($l[$_-1],$l[$_])}
$h = @{}
0..($l.count - 1) | ? {$_ -band 1} | % {$h.($l[$_-1]) = $l[$_]}
$h = @{}
$i = 0
while ($i -lt $l.count) {$h.Add($l[$i++],$l[$i++])}
答案 4 :(得分:2)
如果您的KeyValuePairs明确是'Microsoft.Azure.Management.WebSites.Models.NameValuePair',那么您可以使用:
Function ConvertListOfNVPTo-Hashtable($list) {
$h = @{}
$list | ForEach-Object {
$h[$_.Name] = $_.Value
}
return $h
}