2016-04-12 164 views
1

我想我的布爾值轉換在PowerShell中的以下內容:轉換布爾值到字符串

  • 真→ GREEN
  • 假→ RED

這裏是我的這個相關代碼

$SecMasSQLRes | ForEach-Object { 
    if ($SecMasSQLRes.CusipPercent -lt 25) { 
     Write-Host CusipStatus = GREEN 
    } else { 
     Write-Host CusipStatus = RED 
    } 

    if ($SecMasSQLRes.ISINPercent -lt 10) { 
     Write-Host IsinStatus = GREEN 
    } else { 
     Write-Host IsinStatus = RED 
    } 

    if ($SecMasSQLRes.SymbolPercent -lt 10) { 
     Write-Host SymbolStatus = GREEN 
    } else { 
     Write-Host SymbolStatus = RED 
    } 
} 

$CusipResults = $SecMasSQLRes.CusipPercent -lt 25 
$IsinResults = $SecMasSQLRes.ISINPercent -lt 10 
$SymbolResults = $SecMasSQLRes.SymbolPercent -lt 10 

$CusipResults 
$IsinResults 
$SymbolResults 
+4

'$變量=如果(條件){'綠色 '}否則{' 紅 '}' – PetSerAl

+2

'$查找= @ {$假=' 紅 '; $真='綠色'}; $ lookup [$ MyBool]' – TessellatingHeckler

+1

Golf'd:'@('RED','GREEN')[$ bool]' –

回答

0

有幾種方法可以讓你接受CH這一點:

if (condition) {'GREEN'} else {'RED'} 
  • 使用switch聲明:

    switch (condition) { $true {'GREEN'} default {'RED'} } 
    
  • 使用由@TessellatingHeckler提出了一個哈希表的建議通過@PetSerAl

    • 使用的if/else聲明:

      $light = @{$true = 'GREEN'; $false = 'RED'} 
      $light[(condition)] 
      
    • 使用布爾值(隱式轉換爲整數)作爲索引以陣列的建議通過@Mathias R. Jessen

      @('RED', 'GREEN')[(condition)] 
      

    個人而言,我認爲哈希表的方法是最清潔的方法,所以我倒是更喜歡一個:

    $light = @{ 
        $true = 'GREEN' 
        $false = 'RED' 
    } 
    
    $SecMasSQLRes | ForEach-Object { 
        Write-Host CusipStatus = $light[($_.CusipPercent -lt 25)] 
        Write-Host IsinStatus = $light[($_.ISINPercent -lt 10)] 
        Write-Host SymbolStatus = $light[($_.SymbolPercent -lt 10)] 
    } 
    
  • +0

    感謝球員,走了一條不同的路線,但我一定會嘗試這些建議。 – MrRobot