首页 > 解决方案 > 在 PowerShell 中对两个整数的集合进行排序

问题描述

我有一个 PowerShell 脚本,它将由两个项目组成的项目添加到集合中

$feedList = New-Object Collections.Generic.List[PSCustomObject]

foreach (...) {
    $endpointId = ...
    $messagehandler = ...
    $feedItem = [Int]$endpointId,[Int]$messagehandler
    $feedList.Add($feedItem)
}
$feedList = $feedlist | Sort -Unique

不幸的是,这似乎是按字母顺序而不是按数字排序。例如

219 20
221 59
222 59
225 67
240 78
246 90
46 34
47 31
49 96
51 47
52 103
52 113
52 18
52 20
52 26
52 74
52 76
52 81
55 10
58 18
59 64
60 17
61 52
69 63
70 30
75 12
89 14
90 28
93 1

标签: powershellsortingint

解决方案


由于您将$feedList自定义对象定义为通用列表,因此我建议您实际创建自定义对象,然后按属性对它们进行排序。

foreach (...) {
    ...
    $feedItem = [PSCustomObject]@{
        'EndpointId'     = [int]$endpointId
        'MessageHandler' = [int]$messagehandler
    }
    $feedList.Add($feedItem)
}
$feedList = $feedList | Sort -Unique EndpointId, MessageHandler

推荐阅读