リストをハッシュテーブルに変換する最良の方法は何ですか?キー値のペアのリストをハッシュテーブルに変換する
はハッシュテーブルに変換する最短の構文である私は("Key",$value,"Key2",$value2)
のようなリストを持って言いますか?
リストをハッシュテーブルに変換する最良の方法は何ですか?キー値のペアのリストをハッシュテーブルに変換する
はハッシュテーブルに変換する最短の構文である私は("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=$_}
}
私はそれが好きですが、あなたはそれを単純化することができます: $ ht = @ {}; $ key = 0 "Key"、5、 "Key2"、6 | foreach {if($ key){$ ht。$ key = $ _; $ key = 0} else {$ key = $ _}} –
"Key"の直前に、コメントフォーマッタが私の改行を見ました。 –
ありがとうございます。私は入力が少ないと思う。 – zdan
$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++])}
Function ConvertTo-Hashtable($list) {
$h = @{}
while($list) {
$head, $next, $list = $list
$h.$head = $next
}
$h
}
ConvertTo-Hashtable ("Key",1,"Key2",2)
Bruce Payetteの投稿もご覧ください:[PowerShellのヒント:配列をシフトする方法...](http://blogs.msdn.com/b/powershell/archive/2007/02/06/powershell-tip-how -to-shift-arrays.aspx) –
はい。さらに、これは機能的な世界の標準パターンです。 は、それは、($次$ヘッド、$一覧= $リスト) 一方{$ H。$ヘッド= $次 } –
ラブこの溶液に短縮することができます。 – craig
あなたKeyValuePairsの場合は、明示されている 'Microsoft.Azure.Management.WebSites.Models.NameValuePair'次に使用できます:
Function ConvertListOfNVPTo-Hashtable($list) {
$h = @{}
$list | ForEach-Object {
$ht[$_.Name] = $_.Value
}
return $h
}
Perlで楽になったのですね。 :) – Ivan