Sdílet prostřednictvím


List.findIndex, <'T> Funkce (F#)

Vrátí index prvního prvku v seznamu, který splňuje dané predikátu.Vyvolává KeyNotFoundException Pokud neexistuje žádný takový prvek.

Cesta k oboru názvů nebo modul: Microsoft.FSharp.Collections.List

Sestavení: FSharp.Core (v FSharp.Core.dll)

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

// Usage:
List.findIndex predicate list

Parametry

  • predicate
    Type: 'T ->bool

    Funkce testování vstupní prvky.

  • list
    Type: 'Tlist

    Vstupní seznam.

Výjimky

Výjimka

Podmínka

ArgumentException

Vyvolána, pokud predikátu vyhodnocen na hodnotu false pro všechny prvky seznamu.

Vrácená hodnota

Index první prvek, který splňuje predikátu.

Poznámky

Tato funkce se nazývá FindIndex v kompilovaný sestavení.Pokud přistupujete k funkci .net jazyku než F# nebo prostřednictvím reflexe, tento název použijte.

Příklad

Následující kód ukazuje způsob použití List.findIndex a jeho chování, porovnává 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

Výsledek

  

Platformy

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

Informace o verzi

F# základní verze knihovny

Podporovány: 2.0, 4.0, přenosné

Viz také

Referenční dokumentace

Collections.list modul (F#)

Obor názvů Microsoft.FSharp.Collections (F#)