使用输出:
获取此代码> (@(@{"number"=1},@{"number"=1},@{"number"=2})).Count
3
> (@(@{"number"=1},@{"number"=1},@{"number"=2}) | select -uniq).Count
1
我期待第二个语句返回2
。显然它没有,但我不理解为什么不这样做的理由。为什么-uniq
选项认为所有这三个哈希表都相同?
关注问题,我想从中删除重复项:
@(@{"number"=1},@{"number"=1},@{"number"=2})
以便结果
@(@{"number"=1},@{"number"=2})
我该怎么做?
答案 0 :(得分:3)
如果要评估值的唯一性但是返回了整个哈希表,请使用Sort-Object -Unique
而不是Select-Object -Unique
:
@(@{"number"=1},@{"number"=1},@{"number"=2}) | Sort-Object Values -Unique
答案 1 :(得分:2)
您必须指定您希望唯一应用于哈希表的值:
(@(@{"number"=1},@{"number"=1},@{"number"=2}) | select Values -Unique).count
<强>输出:强>
2