powershell在foreach中组合哈希表

时间:2014-12-23 07:32:50

标签: powershell hashtable

我试图在foreach循环中组合几个哈希表:

$a = {"name" = 'Joe'; "Lname" = 'Doe'; "State" = 'KT'}
$b = {"name" = 'Martha'; "Lname" = 'Who'; "State" = 'LA'}
$c = $a,$b #<=combining.

真正的问题是&#34;逗号&#34;,因为哈希表来自ForEach循环,最后一个成员总是有,

试图找到一种有效的方法将,从最后一个成员中删除到哈希表数组,否则我将不得不通过 (找到最后一个成员?是:否),然后添加逗号,否则只需添加成员。

使用子字符串删除它们没有用,因为$c

   TypeName: System.Collections.Hashtable

Name           MemberType Definition
----           ---------- ----------
Count          Property   System.Int32 Count {get;}
IsFixedSize    Property   System.Boolean IsFixedSize {get;}
IsReadOnly     Property   System.Boolean IsReadOnly {get;}
IsSynchronized Property   System.Boolean IsSynchronized {get;}
Keys           Property   System.Collections.ICollection Keys {get;}
SyncRoot       Property   System.Object SyncRoot {get;}
Values         Property   System.Collections.ICollection Values {get;}

我相信会有更好的选择来删除&#34;,&#34;或者更好的方法在foreach循环中添加哈希表

1 个答案:

答案 0 :(得分:2)

我不确定这是不是你想做的事。

如果您的意思是要创建现有哈希表的数组,可以像这样添加它们:

$a = @{"name" = 'Joe'; "Lname" = 'Doe'; "State" = 'KT'} 
$b = @{"name" = 'Martha'; "Lname" = 'Who'; "State" = 'LA'}

$c = ,$a+,$b 

你也可以这样做:

$c = @()
$c += $a
$c += $b

然后

$c

Name                           Value                                                                  
----                           -----                                                                  
Lname                          Doe                                                                    
name                           Joe                                                                    
State                          KT                                                                     
Lname                          Who                                                                    
name                           Martha                                                                 
State                          LA                                                                     

个别哈希表:

$c[0]
Name                           Value                           
----                           -----                           
Lname                          Doe                             
name                           Joe                             
State                          KT             

$c[1]

Name                           Value                           
----                           -----                           
Lname                          Who                             
name                           Martha                          
State                          LA         

个人价值观:

$c[0]["Lname"]                                      
Doe

使用ForEach循环访问:

$c | % { $_["Lname"]}
Doe
Who