Freigeben über


Seq.findIndex<'T>-Funktion (F#)

Gibt den Index des ersten Elements zurück, für das die angegebene Funktion true zurückgibt.

Namespace/Modulpfad: Microsoft.FSharp.Collections.Seq

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
Seq.findIndex : ('T -> bool) -> seq<'T> -> int

// Usage:
Seq.findIndex predicate source

Parameter

  • predicate
    Typ: 'T ->bool

    Eine Funktion, die überprüft, ob der Index eines bestimmten Elements zurückgegeben werden soll.

  • source
    Typ: seq<'T>

    Die Eingabesequenz.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Wird ausgelöst, wenn die Eingabesequenz NULL ist.

KeyNotFoundException

Wird ausgelöst, wenn kein Element bei der Auswertung durch das Prädikat true zurückgibt.

Rückgabewert

Der Index des ersten Elements, für das die angegebene Funktion true zurückgibt.

Hinweise

Der Name dieser Funktion in kompilierten Assemblys lautet FindIndex.Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Im folgenden Codebeispiel wird die Verwendung von Seq.findIndex veranschaulicht.

let seqA = [| 2 .. 100 |]
let delta = 1.0e-10
let isPerfectSquare (x:int) =
    let y = sqrt (float x)
    abs(y - round y) < delta
let isPerfectCube (x:int) =
    let y = System.Math.Pow(float x, 1.0/3.0)
    abs(y - round y) < delta
let element = Seq.find (fun elem -> isPerfectSquare elem && isPerfectCube elem) seqA
let index = Seq.findIndex (fun elem -> isPerfectSquare elem && isPerfectCube elem) seqA
printfn "The first element that is both a square and a cube is %d and its index is %d." element index

Output

  

Plattformen

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Referenz

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)