【问题标题】:Sort a PowerShell OrderedDictionary with custom objects使用自定义对象对 PowerShell OrderedDictionary 进行排序
【发布时间】:2020-07-21 13:55:54
【问题描述】:

我创建了一个包含自定义对象的 OrderedDictionary。每个对象都有两个属性:

$myCustomObject.name = "foo"
$myCustomObject.date = <datetime here>
$orderedDictionary.add(<value here>,$MyObject)

我需要按日期对所有 $myCustomObject 项目进行排序。我该怎么做?

请注意,我无法将项目按排序顺序添加到有序字典中。

【问题讨论】:

    标签: powershell ordereddictionary


    【解决方案1】:

    请看我的示例代码

    PS C:\> $orderedDictionary = New-Object System.Collections.Specialized.OrderedDictionary
    
    1..5 | % {
    
        Start-Sleep -Seconds 2
    
        $myCustomObject = "" | select name, date
    
        $myCustomObject.name = "foo$_"
        $myCustomObject.date = (Get-Date)
    
        $orderedDictionary.Add($_,$myCustomObject)
    
    }
    

    直接输出:

    PS C:\> $orderedDictionary
    
    Name                           Value                                                                                                                                                 
    ----                           -----                                                                                                                                                 
    1                              @{name=foo1; date=4/9/2020 10:01:32 AM}                                                                                                               
    2                              @{name=foo2; date=4/9/2020 10:01:34 AM}                                                                                                               
    3                              @{name=foo3; date=4/9/2020 10:01:36 AM}                                                                                                               
    4                              @{name=foo4; date=4/9/2020 10:01:38 AM}                                                                                                               
    5                              @{name=foo5; date=4/9/2020 10:01:40 AM}
    

    排序输出(降序):

    PS C:\> $orderedDictionary.Values | sort date -Descending
    
    name date                
    ---- ----                
    foo5 4/9/2020 10:01:40 AM
    foo4 4/9/2020 10:01:38 AM
    foo3 4/9/2020 10:01:36 AM
    foo2 4/9/2020 10:01:34 AM
    foo1 4/9/2020 10:01:32 AM 
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      你可以使用这行代码:

      $ordered = $myCustomObject | sort dateProperty
      

      这里是 documentation 用于根据需要调整的排序对象。

      【讨论】:

      • 我在 Ordered Dictionary 对象 $orderedDictionary 中有一组 $MyCustomObject 项。这种方法能用吗?
      猜你喜欢
      • 2010-12-21
      • 2018-05-13
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 2011-03-23
      • 2012-05-10
      相关资源
      最近更新 更多