将键值对列表转换为哈希表

Sco*_*ein 12 powershell

将List转换为Hashtable的最佳方法是什么?

说我有一个像这样的清单 ("Key",$value,"Key2",$value2)

将它转换为Hashtable的最短语法是什么?

Jar*_*Par 11

请尝试以下方法

$table = new-object System.Collections.Hashtable
for ( $i = 0; $i -lt $list.Length; $i += 2 ) {
  $table.Add($list[$i],$list[$i+1]);
}
Run Code Online (Sandbox Code Playgroud)

  • 我想我希望能有点简洁 (5认同)

Dou*_*nke 11

Function ConvertTo-Hashtable($list) {
    $h = @{}

    while($list) {
        $head, $next, $list = $list
        $h.$head = $next
    }

    $h
}

ConvertTo-Hashtable ("Key",1,"Key2",2)
Run Code Online (Sandbox Code Playgroud)

  • 是.此外,这是功能世界的标准模式.它可以缩短为while($ head,$ next,$ list = $ list){$ h.$ head = $ next} (3认同)

OzB*_*Bob 5

如果您的 KeyValuePairs 明确为“Microsoft.Azure.Management.WebSites.Models.NameValuePair”,则您可以使用:

    Function ConvertListOfNVPTo-Hashtable($list) {
    $h = @{}
    $list | ForEach-Object {
        $h[$_.Name] = $_.Value
    }
    return $h
}
Run Code Online (Sandbox Code Playgroud)