5 Stimmen

Powershell-Äquivalent zu Python "in"?

In letzter Zeit habe ich Arrays verwendet und vermisse wirklich den "in"-Operator von Python.

zum Beispiel:

if ("hello" in ["hello", "there", "sup"]):
    print "das druckt :)"

Ich habe es ein wenig ausgeglichen, indem ich eine Funktion "ThereExists-Object" erstellt habe, wie folgt:

function ThereExists-Object([System.Management.Automation.ScriptBlock] $sb)
{
    return ($input | where $sb) -as [bool]
}
New-Alias -Name ThereExists -Value ThereExists-Object

zum Beispiel:

if ($arrayOfStuff | thereexists { $_ -eq "hello" } )
{
    write-host "das druckt auch"
}

offensichtlich könnte ich auch eine andere Funktion dafür definieren... aber ich würde gerne wissen, ob es etwas syntaktischen Zucker gibt, den ich nicht kenne, der diese Aufgabe erledigen könnte.

Also... gibt es das?

9voto

Craig O Punkte 842
$arrColors = "blau", "rot", "grün", "gelb", "weiß", "rosa", "orange", "türkis"
$arrColors -contains "schwarz" 
False
$arrColors -contains "blau"
True

Quelle: http://technet.microsoft.com/en-us/library/ee692798.aspx

3voto

manojlds Punkte 273771

Von Powershell v3.0 können Sie den -in-Operator selbst verwenden:

PS> "hello" -in "hello", "there", "sup"
True
PS> "hell" -in "hello", "there", "sup"
False

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X