gpt4 book ai didi

Powershell 哈希表存储 "System.Collections.DictionaryEntry"的值

转载 作者:行者123 更新时间:2023-12-03 18:27:04 25 4
gpt4 key购买 nike

当我执行命令时:

$var = @{a=1;b=2}

在 Powershell(第 3 版)中, $var最终得到的值为 {System.Collections.DictionaryEntry, System.Collections.DictionaryEntry} .为什么会这样?如何存储要存储的值?

最佳答案

那是因为您的 ISE 正在枚举集合以创建变量 TreeView ,以及从 HashtableEnumerator 返回的对象。你从 $var.GetEnumerator() 得到的是 DictionaryEntry -对象。

$var = @{a=1;b=2}

#Collection is a Hashtable
$var | Get-Member -MemberType Properties

TypeName: System.Collections.Hashtable

Name MemberType Definition
---- ---------- ----------
Count Property int Count {get;}
IsFixedSize Property bool IsFixedSize {get;}
IsReadOnly Property bool IsReadOnly {get;}
IsSynchronized Property bool IsSynchronized {get;}
Keys Property System.Collections.ICollection Keys {get;}
SyncRoot Property System.Object SyncRoot {get;}
Values Property System.Collections.ICollection Values {get;}

#Enumerated objects (is that a word?) are DictionaryEntry(-ies)
$var.GetEnumerator() | Get-Member -MemberType Properties

TypeName: System.Collections.DictionaryEntry

Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = Key
Key Property System.Object Key {get;set;}
Value Property System.Object Value {get;set;}
您的值(1 和 2)存储在 Value 中- 对象中的属性 Key是您使用的 ID(a 和 b)。
当您需要枚举哈希表时,您只需要关心这一点,例如。当您遍历每个项目时。对于正常使用,这是幕后魔术,因此您可以使用 $var["a"] .

关于Powershell 哈希表存储 "System.Collections.DictionaryEntry"的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36090764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com