Есть несколько способов добиться этого, но в зависимости от вашего сценария самый простой - с хэш-таблицами :
$audienceLocation = @{
'1' = 'New York'
'2' = 'Berlin'
'3' = 'Beijing'
}
$audience = '1'
Write-Host "audience is set to $($audienceLocation[$audience])"
В вашем случае входные значения - это все строки - но если бы они были числовыми, и вы не возражали против преобразования в строковую метку без пробелов, и enum
тип также был бы вариантом.
Перечисления - это просто наборы строк метки, связанные с некоторым базовым целым числом, и могут быть преобразованы в любом направлении с помощью простого преобразования:
enum AudienceLocation
{
NewYork = 1
Berlin = 2
Beijing = 3
}
$audience = 1
$location = [AudienceLocation]$audience
Write-Host "audience is set to $location"
Хорошая особенность enum
в том, что это правильный тип, поэтому вы можете неявно преобразовать ввод функции к указанному параметру типа c enum:
function Do-Something
{
param([AudienceLocation]$Audience)
Write-Host "audience is set to $Audience"
}
Do-Something -Audience 1 # will automatically turn `$Audience` into `'NewYork"` in a string