Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Powershell对元组排序不起作用_Sorting_Powershell_Tuples - Fatal编程技术网

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