2013-02-24 77 views
2

我有以下代码。如何将$f转换为数组,以便它可以与数组进行比较?支撑@(...)不起作用。将选择结果转换为数组

当比较$l$f时,我得到了以下结果。

PS C:\Users\nick> compare $l $f 

InputObject             SideIndicator 
-----------             ------------- 
@{Name=A}             => 
@{Name=B}             => 
@{Name=X}             => 
A               <= 
B               <= 
X               <= 
Y               <= 

回答

5

更换select Nameselect -Expand NameForEach-Object { $_.Name }

0

您可以将两个对象都投射到ArrayLists然后进行比较。

[System.Collections.ArrayList]$array1 = $l 
[System.Collections.ArrayList]$array2 = $f 
+0

我比较$阵列1和$时,得到了相同的结果数组2。 – ca9163d9 2013-02-24 11:10:51

0

试试这个:

$a = New-Object System.Collections.ArrayList; 
$f | % { $null = $a.Add($_.Name); } 
compare $l $a; 
1

另一种方法,如果你正在寻找摆脱单一属性的阵列将使用“ExpandProperty”开关从Select这样的:

$f = cat myFile | ConvertFrom-Csv | gm -MemberType NoteProperty | Select -ExpandProperty Name