按索引引用ENUM

Gor*_*don 1 powershell enums

我需要实现一个查找表方案。我COULD利用哈希表做。所以

$fruit = @{
    0 = 'Apple'
    1 = 'Pear'
    2 = 'Kiwi'
}

$fruit[1]
Run Code Online (Sandbox Code Playgroud)

但是在我看来,ENUM是正确的本机数据类型。但是,虽然我可以获取特定枚举名称的索引,但似乎无法通过引用值/索引来获取名称。这不起作用。

Enum Fruit {
    Apple
    Pear
    Kiwi
}

[fruit]::1
Run Code Online (Sandbox Code Playgroud)

我只是完全不了解ENUM吗?因为在我看来,使用查找索引与[fruit]::'Pear'.value__我想做的相反。

对于上下文,我想有一个ENUM,它为从中获取的整数提供相应的字符串

(Get-WmiObject -class:Win32_ComputerSystem -computerName:. -nameSpace:'root\CIMV2').PCSystemType
Run Code Online (Sandbox Code Playgroud)

最后,我想将这些ENUM本地化为PSD1文件,因此当PCSystemType为2时,我的法语用户将获得“ Portable”,而英语用户则将获得“ Mobile”。注意,我实际上不确定“ Portable”是否正确,我需要找一个朋友来进行本地化,但是您明白了。

无论如何,在给定索引的情况下,是否有直接到达名称的路径?还是将枚举强制为数组或哈希表的唯一选择,此时没有理由使用枚举?

编辑:@ andy-arismendi在这里回答了:: ::问题。它正在调用[fru​​it]类型的静态方法,这不是我们想要的。而且,由于它是.NET类型,我想也需要.NET方式来引用索引,而该索引不需要像PowerShell一样使用[#]?更多学习!;)

小智 6

使用枚举作为[fruit] 1会起作用