我正在尝试在PowerShell中将字符串转换为枚举值,但在任何地方都找不到...
我得到一个JSON结果,我只想使用定义为字符串的Healthstate。
enum HealthState
{
Invalid = 0
Ok = 1
Warning = 2
Error = 3
Unknown = 65535
}
$jsonResult = "Ok"
$HealthStateResultEnum = [Enum]::ToObject([HealthState], $jsonResult)
谢谢。
答案 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