2016-04-12 11 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

'$変数= IF(条件){' GREEN '}他{' RED '}' – PetSerAl

+2

'$検索= @ {$ falseを=' RED '; $真='緑'}; $ lookup [$ MyBool] ' – TessellatingHeckler

+1

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

答えて

0

いくつかの方法がありますCHこの:

  • @PetSerAlにより示唆されるようにif/else文で使用します。

    if (condition) {'GREEN'} else {'RED'} 
    
  • switchステートメントを使用します。

    switch (condition) { $true {'GREEN'} default {'RED'} } 
    
  • @TessellatingHecklerにより示唆されるように、ハッシュテーブルを使用します:

    $light = @{$true = 'GREEN'; $false = 'RED'} 
    $light[(condition)] 
    
  • @Mathias R. Jessenにより示唆されるように配列内のインデックスとして(暗黙的に整数にキャスト)ブール値を使用します。

    @('RED', 'GREEN')[(condition)] 
    
  • 個人的に

が、私はハッシュテーブル方法が最もクリーンなアプローチだと思うので、私'D好むその1:

$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

関連する問題