使用Add-Member
,我向对象数组添加了一个小方法,用于从字符串计算散列的排序:
$arr | Add-Member -MemberType ScriptMethod -Name 'SortedName' -Value {
[string]$name = $this.Name
[int]$start = [int][char]$name[0];
[int]$index = [int]($name -replace '^.+?(\d+)\.[^.]+$','$1')
[int]"$start$('{0:D4}' -f $index)"
}
现在我想使用$arr | Sort-Object -PropertyName 'SortedName'
对数组排序,但是这看起来并不像预期的那样工作。
如何在数组的方法上应用Sort-Object
?
1条答案
按热度按时间jv4diomz1#
要对每个元素调用方法,需要使用计算表达式。
例如: