【问题标题】:Can a Powershell hashtable be accessed via .Key rather than ["Key"] somehow?可以通过 .Key 而不是 ["Key"] 以某种方式访问​​ Powershell 哈希表吗?
【发布时间】:2012-07-21 17:36:34
【问题描述】:

我是一个懒惰的程序员,所有这些 hash["Key"] 标点符号都让我很紧张。是否有语法糖(可能是不同的对象类型)允许您创建使用成员方法语法(hash.Key)访问的哈希表?在 Ruby 中有很多简单的技巧可以做到这一点。在 Powershell 中是否有 hack 可以做到这一点?

【问题讨论】:

标签: powershell syntax hashtable


【解决方案1】:

是的:

$hash = @{"a" = 1; "b" = 2 }
$val = $hash.a

注意:它也适用于任何 IDictionary,而不仅仅是 Hashtable。

【讨论】:

  • +1,因为它确实回答了所提出的问题。但是,我想知道是否有对常见 CLR 类型的类似支持(例如 Dictionary 或其他可索引的 Collection,它们可能通过调用方法返回)..
  • 该死的,我很愚蠢。我失败了,但因为我试图在字符串扩展中使用它,而不使用 $()。我为这个愚蠢的问题道歉。我指的是哈希@pst,而不是字典,尽管我感谢您对我没有问一个愚蠢的问题的信心......我只是因为使用错误的语法进行第一次测试而失败了:“Expand ${hash.key}”而不是“展开 $($hash.key)"。我没有在字符串扩展之外对其进行测试。
  • 有趣的时光......这在任何地方都可以正常工作,但我最初是在哪里测试它。 $ExecutionContext.InvoteCommand.ExpandString('$($hash.key)') 失败。但是同样的命令,通过 '$($hash[''key'']' 成功。
猜你喜欢
  • 1970-01-01
  • 2012-05-19
  • 2016-05-03
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
相关资源
最近更新 更多