如何在PowerShell 5.1中获取Hashtable的首个键元素?
获取PowerShell哈希表的首个键元素
针对你的场景,ConvertFrom-StringData在PowerShell 5.1中返回的是有序字典(OrderedDictionary),键的顺序与输入字符串中的定义顺序完全一致,因此可以通过以下几种方式获取首个键:
方法1:直接通过索引访问Keys集合
利用有序字典的Keys集合支持索引访问的特性,直接取索引为0的元素:
$stringData=@' DEV=True UAT=False '@ $oTest=ConvertFrom-StringData $stringData $oTest.Keys[0]
输出结果:
DEV
方法2:通过枚举器获取第一个元素的Key
使用GetEnumerator()获取字典枚举器,直接提取第一个元素的Key属性:
# 方式A:结合Select-Object筛选 $oTest.GetEnumerator() | Select-Object -First 1 -ExpandProperty Key # 方式B:直接访问枚举器的第一个元素 ($oTest.GetEnumerator()).Key
方法3:通过Keys集合的枚举器获取
单独获取Keys集合的枚举器,移动到第一个元素后读取当前值:
$keyEnum = $oTest.Keys.GetEnumerator() $keyEnum.MoveNext() $keyEnum.Current
注意:如果是普通
Hashtable(非有序),键的存储顺序不固定,上述方法获取的"首个键"可能不符合预期,但你的场景中ConvertFrom-StringData返回的有序字典会严格保留输入顺序,因此可以放心使用。
内容的提问来源于stack exchange,提问作者Rod
相关产品推荐
相关产品推荐

