如何将字符串转换为枚举?

时间:2018-10-19 09:10:00

标签: powershell enums

我正在尝试在PowerShell中将字符串转换为枚举值,但在任何地方都找不到...

我得到一个JSON结果,我只想使用定义为字符串的Healthstate。

enum HealthState
{
    Invalid = 0
    Ok = 1
    Warning = 2
    Error = 3
    Unknown = 65535
}
$jsonResult = "Ok"
$HealthStateResultEnum = [Enum]::ToObject([HealthState], $jsonResult) 

谢谢。

2 个答案:

答案 0 :(得分:3)

您可以简单地将字符串结果转换为Enum类型:

$HealthStateResultEnum = [HealthState]$jsonResult

无论$jsonResult包含枚举类型的字符串还是值,这都将起作用。

答案 1 :(得分:1)

假设您要获取枚举的值__:

PS> [Enum]::GetValues([HealthState])|? {$_ -eq $JSonresult}|Select @{n="Name";e={"$_"}},value__

Name value__
---- -------
Ok         1

或者简单地

PS> [int]([HealthState]$jsonResult)
1