如何在PowerShell中利用两个哈希表创建新哈希表(以第一个表的值为键)
实现方法
你的需求是将$table1的取值作为新哈希表的键,对应$table2的取值作为值。PowerShell 3.0及以上版本的哈希表会保留键值对的插入顺序,可通过以下步骤实现:
- 提取两个哈希表的值到数组,确保顺序对应:
$table1Values = $table1.Values $table2Values = $table2.Values
- 初始化空的目标哈希表:
$newTable = @{}
- 通过索引遍历,将对应位置的值配对添加到新哈希表:
for ($i = 0; $i -lt $table1Values.Count; $i++) { $newTable[$table1Values[$i]] = $table2Values[$i] }
执行完成后,$newTable就会得到你想要的结果:
PS> $newTable Name Value ---- ----- 1 3 2 5 3 7
补充说明
- 该方法依赖哈希表的插入顺序保留特性,若使用PowerShell 2.0或更早版本,哈希表不保留顺序,需额外预先定义有序的键列表来匹配。
- 请确保
$table1和$table2的键值对数量一致,否则会出现索引越界或键值对不完整的情况。
内容的提问来源于stack exchange,提问作者frankyie
相关产品推荐
相关产品推荐

