Sorting Powershell对元组排序不起作用
这是我尝试和失败的最简单的例子:Sorting Powershell对元组排序不起作用,sorting,powershell,tuples,Sorting,Powershell,Tuples,这是我尝试和失败的最简单的例子: @(1, 3, 2) | Select-Object {New-Object "tuple[Int,Int]" $_, 1} | Sort-Object -Property Item1 它返回: (2, 1) (3, 1) (1, 1) 我希望返回按元组的第一个元素排序的列表。显然,在这个小演示中,我可以首先进行排序,但在我的实际用例中,我在选择对象阶段对列表执行一个计算,然后希望根据该计算的结果进行排序 我当然不会使用元组,但我尝试过使用其他选项,但失败了
@(1, 3, 2) | Select-Object {New-Object "tuple[Int,Int]" $_, 1} | Sort-Object -Property Item1
它返回:
(2, 1)
(3, 1)
(1, 1)
我希望返回按元组的第一个元素排序的列表。显然,在这个小演示中,我可以首先进行排序,但在我的实际用例中,我在选择对象阶段对列表执行一个计算,然后希望根据该计算的结果进行排序
我当然不会使用元组,但我尝试过使用其他选项,但失败了,但没有成功。我只需要获取一个列表,根据计算结果向列表的每个元素添加附加信息,然后根据附加信息进行排序
考虑到我花了多长时间才弄明白这一点,我现在觉得自己真的很愚蠢,因此非常感谢您的帮助。如果您只是在向对象添加自定义属性,请尝试返回具有附加属性的新对象。要在
@(1,3,2)
中使用相同的示例,请执行以下操作:
只有先将元组添加到列表中,才能对元组进行排序。 排序顺序始终从第一项升序到最后一项:
$list = New-Object 'Collections.ArrayList'
foreach ($x in 1, 3, 2) {$null = $list.add([tuple]::create($x, 1))}
$list.Sort()
$list | select item1, item2
$list = New-Object 'Collections.ArrayList'
foreach ($x in 1, 3, 2) {$null = $list.add([tuple]::create($x, 1))}
$list.Sort()
$list | select item1, item2