如何将一个字符串转换为枚举类型?

7
我试图在PowerShell中将字符串转换为枚举值,但无法找到任何相关资料...
我得到了一个JSON结果,我只想使用作为字符串定义的Healthstate。
enum HealthState
{
    Invalid = 0
    Ok = 1
    Warning = 2
    Error = 3
    Unknown = 65535
}
$jsonResult = "Ok"
$HealthStateResultEnum = [Enum]::ToObject([HealthState], $jsonResult) 

提前致谢。

2个回答

8
您可以将字符串结果直接转换为枚举类型:
$HealthStateResultEnum = [HealthState]$jsonResult

无论 $jsonResult 包含字符串还是枚举类型的值,此方法都可以正常工作。

2

假设你想获取枚举的值:

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

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

或者只需简单地
PS> [int]([HealthState]$jsonResult)
1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接