Как преобразовать строку в перечисление? - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь преобразовать строку в значение перечисления в PowerShell, но не могу найти это нигде ...

Я получаю результат в формате JSON, где мне нужно только использовать Healthstate, которыйопределяется как строка.

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

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Предполагая, что вы хотите получить значение__ из перечисления:

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

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

Или просто

PS> [int]([HealthState]$jsonResult)
1
0 голосов
/ 19 октября 2018

Вы можете просто привести строковый результат как тип Enum:

$HealthStateResultEnum = [HealthState]$jsonResult

Это будет работать, если $jsonResult содержит строку или значение из типа enum.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...