当前位置: 首页 > 知识库问答 >
问题:

如何一次检查哈希表键和值是否存在空/空/空格

司业
2023-03-14

当我想在 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个答案

燕琛
2023-03-14

只是为了说明安斯加的好建议:

$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
 类似资料:
  • 问题内容: 我有需要检查的情况。我有一个名为: 因为该键本身不存在,所以抛出。如果我检查 由于引发了另一个。如何测试地图中的键不存在?我知道该方法应该处理它,但这不在我的控制之下。] 问题答案: 即使现在我也因为.get引发异常而得到nullpoiner 如果只有一行,并且确定它抛出异常,则唯一的可能性可能是null。

  • 我想检查DateTime字段是否不是空的\null字符串。如果datetime字段不为空,则我将执行一些操作。 这是我的错误消息: 我能做些什么来检查一个字段是否不是字符串,而是对象?

  • 问题内容: 例如,如果通过以下内容: 如何检查是否为空? 问题答案: pythonic的方法来自PEP 8样式指南(“是”表示“推荐”,“ 否”表示“不推荐”): 对于序列(字符串,列表,元组),请使用以下事实:空序列为假。

  • 我有一个名为< code>Person的对象。 它有几个属性; 我设置了一个person对象,比如< code>Person p = new Person(1,“Joe”);。 1.) 我需要检查对象是否为空;以下表达式是否正确; 2.)我需要知道ID是否包含Int。 但是,java不允许这样做。我该怎么办?

  • 问题内容: 如何检查是否为空? 问题答案: 您自己说过的,请检查它是: 看,PHP非常简单。您可以简单地写下您的想法;) 这种方法很安全。如果未设置(可能,但可能),则可能会给您提供未定义的变量E_NOTICE 。

  • 问题内容: 我试图弄清楚如何检查一个字段是否为空或为空。我有这个 我需要添加额外的支票,例如 任何想法如何做到这一点? 问题答案: 无论使用 要么 如果只想检查而不是空字符串,则也可以使用或。但这不适用于空字符串。