Как проверить наличие ключа хеш-таблицы, а также значения, отличного от null / empty / whitespace, сразу - PullRequest
0 голосов
/ 27 апреля 2018

Когда я хочу проверить все эти вещи сразу в состоянии сценария PowerShell:

  1. Проверка на наличие ключа хеш-таблицы
  2. Убедитесь, что значение ключа не равно NULL
  3. Убедитесь, что значение ключа не пустая строка
  4. Убедитесь, что значение ключа не просто пробел

Я делаю это так:

$properties = @{ first = 'A'; second = ''; third = 'C' }

if (![string]::IsNullOrWhitespace($properties.first)) {
    Write-Host "Value of key 'first' is: $($properties.first)"
}
if (![string]::IsNullOrWhitespace($properties.second)) {
    Write-Host "Value of key 'second' is: $($properties.second)"
}
if (![string]::IsNullOrWhitespace($properties.fourth)) {
    # This does not fail 
}

Выход:

Value of key 'first' is: A

Очевидно, что это работает даже для несуществующих ключей. Но мне любопытно, есть ли лучший или более чистый способ сделать это?

1 Ответ

0 голосов
/ 27 апреля 2018

Просто чтобы проиллюстрировать хорошее предложение Ансгара:

$properties = @{ first = 'A'; second = ''; third = 'C' }

ForEach ($key in "first","second","fourth") {
    if (([string]$properties[$key]).Trim()) {
        Write-Host ("Value of key '{0}' is: {1}" -f $key,$properties[$key])
    } else {
        Write-Host ("Either key '{0}' is not existent or value is empty/Null" -f $key)
    }
}

Пример вывода:

Value of key 'first' is: A
Either key 'second' is not existent or value is empty/Null
Either key 'fourth' is not existent or value is empty/Null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...