Question:
How to use Group-Object
on the first two columns (a, b) and (c, e) of the following array?
1 2 3 4 5 |
$a = @('a','b','x',10), @('a','b','y',20), @('c','e','x',50), @('c','e','y',30) |
Answer:
Group-Object
accepts anonymous calculated properties, in place of property names:
1 2 |
PS C:\> $a | Group-Object @{ Expression={$_[0]} },@{ Expression = {$_[1]} } |
It also accepts a ScriptBlock:
1 2 |
PS C:\> $a | Group-Object {$_[0]},{$_[1]} |
As long as the expression can be evaluated to a string:
1 2 3 4 5 6 7 8 9 10 |
PS C:\> Get-Help Group-Object -Parameter Property -Property [ Specifies the properties for grouping. The objects are arranged into groups based on the value of the specified property. The value of the Property parameter can be a new calculated property. To create a calculated, property, create a hash table with an Expression key that specifies a string or script block value. |