Powershell 将键值对列表转换为哈希表
将列表转换为哈希表的最佳方式是什么 假设我有一个类似于Powershell 将键值对列表转换为哈希表,powershell,Powershell,将列表转换为哈希表的最佳方式是什么 假设我有一个类似于(“Key”、$value、$Key2”、$value2)的列表 将其转换为哈希表的最短语法是什么?请尝试以下方法 $table = new-object System.Collections.Hashtable for ( $i = 0; $i -lt $list.Length; $i += 2 ) { $table.Add($list[$i],$list[$i+1]); } 那么: $ht = @{} $key = ""; ("Ke
(“Key”、$value、$Key2”、$value2)的列表
将其转换为哈希表的最短语法是什么?请尝试以下方法
$table = new-object System.Collections.Hashtable
for ( $i = 0; $i -lt $list.Length; $i += 2 ) {
$table.Add($list[$i],$list[$i+1]);
}
那么:
$ht = @{}
$key = "";
("Key",5,"Key2",6) | foreach `
{
if($key)
{
$ht.$key = $_;
$key="";
} else
{$key=$_}
}
如果您的KeyValuePair显式为“Microsoft.Azure.Management.WebSites.Models.NameValuePair”,则可以使用:
Function ConvertListOfNVPTo-Hashtable($list) {
$h = @{}
$list | ForEach-Object {
$h[$_.Name] = $_.Value
}
return $h
}
我想我希望有一个更简洁的东西,但你可以简化一点:$ht=@{}$key=0“key”,5,“Key2”,6 | foreach{if($key){$ht.$key=$\$key=0}否则{$key=$\}谢谢。我想打字少了点。没问题。我非常喜欢当属性名是变量时,可以使用属性语法设置哈希表条目,例如$ht.$key=$\ux。这让我觉得很漂亮。:-)另见Bruce Payette的帖子:是的。此外,这是功能领域的标准模式。它可以缩短为while($head,$next,$list=$list){$h.$head=$next}在Perl中比较容易,不是吗?:)也适用于环境变量:
$artifacts=gci env:*| Sort Name | Where Object{$\uu.Name-类似于“RELEASE\u artifacts”}$结果=@{artifacts=converttohashtable($artifacts)}$results | converttojson
Function ConvertTo-Hashtable($list) {
$h = @{}
while($list) {
$head, $next, $list = $list
$h.$head = $next
}
$h
}
ConvertTo-Hashtable ("Key",1,"Key2",2)
Function ConvertListOfNVPTo-Hashtable($list) {
$h = @{}
$list | ForEach-Object {
$h[$_.Name] = $_.Value
}
return $h
}