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 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 utilizzata 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 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.

Informazioni sulla versione

F# Runtime

Supportato in: 2.0, 4.0

Silverlight

Supportato in: 3

Vedere anche

Riferimenti

Modulo Collections.List (F#)

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

Cronologia delle modifiche

Data

Cronologia

Motivo

Agosto 2010

Aggiunto esempio di codice.

Miglioramento delle informazioni.