Ich habe ein Array von Strings. Nicht sicher, ob es einen einfachen Weg gibt, den Index eines zuerst gefundenen Elements im Array zu finden?
%Vor%Ich könnte es in einer Schleife machen. nicht sicher, ob es einen alternativen Weg gibt?
Verwenden Sie eine for-Schleife (oder eine foreach-Schleife, die über den Array-Index iteriert ... gleiche Differenz). Ich kenne keine Systemvariable, die den aktuellen Array-Index innerhalb einer foreach-Schleife enthält, und ich glaube nicht, dass eine existiert.
%Vor%Wenn Sie wissen, dass der Wert nur einmal im Array auftritt, ist die Methode [array] :: IndexOf () ein guter Weg:
%Vor%Abgesehen davon, dass die Anordnung sehr groß ist, ist die Leistung dieses Ansatzes ein wenig besser als die Verwendung eines PowerShell-Cmdlets wie Where-Object. Dennoch wird nur das erste Vorkommen des angegebenen Elements gefunden. Aber Sie können die andere Überladung von IndexOf verwenden, um das nächste Vorkommen zu finden:
%Vor%$ ndx wird -1, wenn das Element nicht gefunden wird.
Die Verwendung von Where-Object ist wahrscheinlich eher langsam, weil es die Pipeline für eine einfache Operation betrifft.
Der schnellste / einfachste Weg, dies zu tun (in PowerShell V2), besteht darin, dem Ergebnis eines for
eine Variable zuzuweisen %Vor%Tags und Links powershell