Condividi tramite


Funzione List.findIndex<'T> (F#)

Restituisce l'indice del primo elemento nell'elenco che soddisfa il predicato specificato. Se tale elemento non esiste, viene generata l'eccezione KeyNotFoundException.

Percorso di spazio dei nomi/modulo: Microsoft.FSharp.Collections.List

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

// Signature:
List.findIndex : ('T -> bool) -> 'T list -> int

// Usage:
List.findIndex predicate list

Parametri

  • predicate
    Tipo: 'T -> bool

    Funzione da utilizzare per eseguire il test degli elementi di input.

  • list
    Tipo: 'T list

    Elenco di input.

Eccezioni

Eccezione

Condizione

ArgumentException

Generata se il predicato restituisce false per tutti gli elementi dell'elenco.

Valore restituito

Indice del primo elemento che soddisfa il predicato.

Note

Questa funzione è denominata FindIndex negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio .NET diverso da F# o tramite reflection.

Esempio

Nel codice riportato di seguito viene illustrato come utilizzare List.findIndex e viene effettuato un confronto del suo comportamento rispetto a quello di List.find.

let list1 = [ 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 = List.find (fun elem -> isPerfectSquare elem && isPerfectCube elem) list1
let index = List.findIndex (fun elem -> isPerfectSquare elem && isPerfectCube elem) list1
printfn "The first element that is both a square and a cube is %d and its index is %d." element index

Output

  

Piattaforme

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

Informazioni sulla versione

Versioni della libreria di base F#

Supportato in: 2,0, 4,0, portabile

Vedere anche

Riferimenti

Modulo Collections.List (F#)

Spazio dei nomi Microsoft.FSharp.Collections (F#)