理解哈希表数组的唯一性

时间:2016-08-12 09:31:06

标签: powershell

使用输出:

获取此代码
> (@(@{"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})

我该怎么做?

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