首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枚举PSCustomObject

枚举PSCustomObject
EN

Stack Overflow用户
提问于 2015-11-25 21:43:50
回答 3查看 1.3K关注 0票数 0

是否有人知道从自定义对象中“破坏”哈希表源代码的方法。自定义对象上没有.getenumerrator,但我有以下哈希表:@{0=0.05;1024=0.050;51200=0.050;512000=0.050;1024000=0.045;5120000=0.037}。我正在通过Azure RateCard REST提取这一信息,并需要对其进行分解,这样我就可以访问每个级别的费率,从而生成一个准确的使用成本报告。有什么建议吗?抽样产出:

代码语言:javascript
复制
MeterId          : d23a5753-ff85-4ddf-af28-8cc5cf2d3882
MeterName        : Standard IO - Page Blob/Disk (GB)
MeterCategory    : Storage
MeterSubCategory : Locally Redundant
Unit             : GB
MeterTags        : {}
MeterRegion      : 
MeterRates       : @{0=0.05; 1024=0.050; 51200=0.050; 512000=0.050; 1024000=0.045; 5120000=0.037}
EffectiveDate    : 2014-02-01T00:00:00Z
IncludedQuantity : 0.0

 TypeName: System.Management.Automation.PSCustomObject

Name             MemberType   Definition                                                                                                                           
----             ----------   ----------                                                                                                                           
Equals           Method       bool Equals(System.Object obj)                                                                                                       
GetHashCode      Method       int GetHashCode()                                                                                                                    
GetType          Method       type GetType()                                                                                                                       
ToString         Method       string ToString()                                                                                                                    
EffectiveDate    NoteProperty System.String EffectiveDate=2014-02-01T00:00:00Z                                                                                     
IncludedQuantity NoteProperty System.Decimal IncludedQuantity=0.0                                                                                                  
MeterCategory    NoteProperty System.String MeterCategory=Storage                                                                                                  
MeterId          NoteProperty System.String MeterId=d23a5753-ff85-4ddf-af28-8cc5cf2d3882                                                                           
MeterName        NoteProperty System.String MeterName=Standard IO - Page Blob/Disk (GB)                                                                            
MeterRates       NoteProperty System.Management.Automation.PSCustomObject MeterRates=@{0=0.05; 1024=0.050; 51200=0.050; 512000=0.050; 1024000=0.045; 5120000=0.037}
MeterRegion      NoteProperty System.String MeterRegion=                                                                                                           
MeterSubCategory NoteProperty System.String MeterSubCategory=Locally Redundant                                                                                     
MeterTags        NoteProperty System.Object[] MeterTags=System.Object[]                                                                                            
Unit             NoteProperty System.String Unit=GB                         
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-01 17:24:14

在类似的问题上找到了这段代码。解决了我的问题:

代码语言:javascript
复制
$js | Get-Member -MemberType NoteProperty).Name
票数 0
EN

Stack Overflow用户

发布于 2015-11-25 22:39:57

不知道你所说的破门而入是什么意思,但这应该给你钥匙:

代码语言:javascript
复制
$object.MeterRates.keys

这将为您提供以下值:

代码语言:javascript
复制
$object.MeterRates.keys | % {$object.MeterRates[$_]}

你想要的是总价值吗?我猜可能是这样的:

代码语言:javascript
复制
($object.MeterRates.keys | % {$object.MeterRates[$_] * $_} | Measure-Object -Sum).Sum
票数 1
EN

Stack Overflow用户

发布于 2015-11-25 22:40:01

也许有更好的方法,但我的特定版本的powershell黑客产生了这样的东西-

代码语言:javascript
复制
$a = "@{0=0.05; 1024=0.050; 51200=0.050; 512000=0.050; 1024000=0.045; 5120000=0.037}"

$b = ConvertFrom-StringData `
        -StringData $a.Replace("; ","`n").Replace("@","").Replace("{","").Replace("}","")

这假定整个字符串是可用的,用换行符替换分号,丢弃其他位,并将其交给。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33926917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档