Array.FindIndex Metod

Definition

Söker efter ett element som matchar de villkor som definierats av ett angivet predikat och returnerar det nollbaserade indexet för den första förekomsten inom en Array eller en del av den.

Överlagringar

Name Description
FindIndex<T>(T[], Predicate<T>)

Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den första förekomsten i hela Array.

FindIndex<T>(T[], Int32, Predicate<T>)

Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den första förekomsten inom elementintervallet Array i som sträcker sig från det angivna indexet till det sista elementet.

FindIndex<T>(T[], Int32, Int32, Predicate<T>)

Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den första förekomsten inom elementintervallet Array i som börjar vid det angivna indexet och innehåller det angivna antalet element.

Exempel

I följande kodexempel visas alla tre överlagringarna av den FindIndex generiska metoden. En matris med strängar skapas, som innehåller 8 dinosaurienamn, varav två (på position 1 och 5) slutar med "saurus". Kodexemplet definierar också en sökpredikatmetod med namnet EndsWithSaurus, som accepterar en strängparameter och returnerar ett booleskt värde som anger om indatasträngen slutar med "saurus".

Metodöverlagringen FindIndex<T>(T[], Predicate<T>) passerar matrisen från början och skickar varje element i tur och ordning till EndsWithSaurus metoden. Sökningen stoppas EndsWithSaurus när metoden returnerar true för elementet vid position 1.

Note

I C#, F# och Visual Basic är det inte nödvändigt att skapa ombudet Predicate<string> (Predicate(Of String) i Visual Basic) explicit. Dessa språk härleder rätt ombud från kontexten och skapar det automatiskt.

Metodöverlagringen FindIndex<T>(T[], Int32, Predicate<T>) används för att söka i matrisen med början vid position 2 och fortsätta till slutet av matrisen. Den hittar elementet vid position 5. Slutligen används metodöverlagringen FindIndex<T>(T[], Int32, Int32, Predicate<T>) för att söka i intervallet med tre element som börjar vid position 2. Den returnerar -1 eftersom det inte finns några dinosaurienamn i det intervallet som slutar med "saurus".

using System;

public class Example
{
    public static void Main()
    {
        string[] dinosaurs = { "Compsognathus",
            "Amargasaurus",   "Oviraptor",      "Velociraptor",
            "Deinonychus",    "Dilophosaurus",  "Gallimimus",
            "Triceratops" };

        Console.WriteLine();
        foreach(string dinosaur in dinosaurs)
        {
            Console.WriteLine(dinosaur);
        }

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, EndsWithSaurus): {0}",
            Array.FindIndex(dinosaurs, EndsWithSaurus));

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, 2, EndsWithSaurus): {0}",
            Array.FindIndex(dinosaurs, 2, EndsWithSaurus));

        Console.WriteLine(
            "\nArray.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}",
            Array.FindIndex(dinosaurs, 2, 3, EndsWithSaurus));
    }

    // Search predicate returns true if a string ends in "saurus".
    private static bool EndsWithSaurus(String s)
    {
        if ((s.Length > 5) &&
            (s.Substring(s.Length - 6).ToLower() == "saurus"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

/* This code example produces the following output:

Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
Triceratops

Array.FindIndex(dinosaurs, EndsWithSaurus): 1

Array.FindIndex(dinosaurs, 2, EndsWithSaurus): 5

Array.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): -1
 */
open System

// Search predicate returns true if a string ends in "saurus".
let endsWithSaurus (s: string) =
    s.Length > 5 && s.Substring(s.Length - 6).ToLower() = "saurus"

let dinosaurs =
    [| "Compsognathus"; "Amargasaurus"
       "Oviraptor"; "Velociraptor"
       "Deinonychus"; "Dilophosaurus"
       "Gallimimus"; "Triceratops" |]

printfn ""
for dino in dinosaurs do
    printfn $"{dino}"

Array.FindIndex(dinosaurs, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, EndsWithSaurus): %i"

Array.FindIndex(dinosaurs, 2, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, 2, EndsWithSaurus): %i"

Array.FindIndex(dinosaurs, 2, 3, endsWithSaurus)
|> printfn "\nArray.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): %i"


// This code example produces the following output:
//
//     Compsognathus
//     Amargasaurus
//     Oviraptor
//     Velociraptor
//     Deinonychus
//     Dilophosaurus
//     Gallimimus
//     Triceratops
//
//     Array.FindIndex(dinosaurs, EndsWithSaurus): 1
//
//     Array.FindIndex(dinosaurs, 2, EndsWithSaurus): 5
//
//     Array.FindIndex(dinosaurs, 2, 3, EndsWithSaurus): -1
Public Class Example

    Public Shared Sub Main()

        Dim dinosaurs() As String = { "Compsognathus", _
            "Amargasaurus",   "Oviraptor",      "Velociraptor", _
            "Deinonychus",    "Dilophosaurus",  "Gallimimus", _
            "Triceratops" }

        Console.WriteLine()
        For Each dinosaur As String In dinosaurs
            Console.WriteLine(dinosaur)
        Next

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus))

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus))

        Console.WriteLine(vbLf & _
            "Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus): {0}", _
            Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus))

    End Sub

    ' Search predicate returns true if a string ends in "saurus".
    Private Shared Function EndsWithSaurus(ByVal s As String) _
        As Boolean

        ' AndAlso prevents evaluation of the second Boolean
        ' expression if the string is so short that an error
        ' would occur.
        If (s.Length > 5) AndAlso _
            (s.Substring(s.Length - 6).ToLower() = "saurus") Then
            Return True
        Else
            Return False
        End If
    End Function
End Class

' This code example produces the following output:
'
'Compsognathus
'Amargasaurus
'Oviraptor
'Velociraptor
'Deinonychus
'Dilophosaurus
'Gallimimus
'Triceratops
'
'Array.FindIndex(dinosaurs, AddressOf EndsWithSaurus): 1
'
'Array.FindIndex(dinosaurs, 2, AddressOf EndsWithSaurus): 5
'
'Array.FindIndex(dinosaurs, 2, 3, AddressOf EndsWithSaurus): -1

FindIndex<T>(T[], Predicate<T>)

Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs

Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den första förekomsten i hela Array.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, Predicate<T> match);
static member FindIndex : 'T[] * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), match As Predicate(Of T)) As Integer

Typparametrar

T

Typ av element i matrisen.

Parametrar

array
T[]

Den endimensionella, nollbaserade sökfunktionen Array .

match
Predicate<T>

Det Predicate<T> som definierar villkoren för elementet som ska sökas efter.

Returer

Det nollbaserade indexet för den första förekomsten av ett element som matchar de villkor som definieras av match, om det hittas, annars -1.

Undantag

array är null.

-eller-

match är null.

Kommentarer

Array Söks framåt med början vid det första elementet och slutar vid det sista elementet.

Predicate<T> är ett ombud till en metod som returnerar true om objektet som skickas till det matchar de villkor som definierats i ombudet. Elementen array i skickas individuellt till Predicate<T>.

Den här metoden är en O()-nåtgärd, där n är för Lengtharray.

Se även

Gäller för

FindIndex<T>(T[], Int32, Predicate<T>)

Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs

Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den första förekomsten inom elementintervallet Array i som sträcker sig från det angivna indexet till det sista elementet.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, int startIndex, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, int startIndex, Predicate<T> match);
static member FindIndex : 'T[] * int * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), startIndex As Integer, match As Predicate(Of T)) As Integer

Typparametrar

T

Typ av element i matrisen.

Parametrar

array
T[]

Den endimensionella, nollbaserade sökfunktionen Array .

startIndex
Int32

Det nollbaserade startindexet för sökningen.

match
Predicate<T>

Det Predicate<T> som definierar villkoren för elementet som ska sökas efter.

Returer

Det nollbaserade indexet för den första förekomsten av ett element som matchar de villkor som definieras av match, om det hittas, annars -1.

Undantag

array är null.

-eller-

match är null.

startIndex är mindre än noll eller större än längden på array.

Kommentarer

Array Söks framåt med början vid startIndex och slutar vid det sista elementet.

Predicate<T> är ett ombud till en metod som returnerar true om objektet som skickas till det matchar de villkor som definierats i ombudet. Elementen array i skickas individuellt till Predicate<T>.

Den här metoden är en O(n)-åtgärd, där n är antalet element från startIndex till slutet av array.

Se även

Gäller för

FindIndex<T>(T[], Int32, Int32, Predicate<T>)

Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs
Källa:
Array.cs

Söker efter ett element som matchar de villkor som definierats av det angivna predikatet och returnerar det nollbaserade indexet för den första förekomsten inom elementintervallet Array i som börjar vid det angivna indexet och innehåller det angivna antalet element.

public:
generic <typename T>
 static int FindIndex(cli::array <T> ^ array, int startIndex, int count, Predicate<T> ^ match);
public static int FindIndex<T>(T[] array, int startIndex, int count, Predicate<T> match);
static member FindIndex : 'T[] * int * int * Predicate<'T> -> int
Public Shared Function FindIndex(Of T) (array As T(), startIndex As Integer, count As Integer, match As Predicate(Of T)) As Integer

Typparametrar

T

Typ av element i matrisen.

Parametrar

array
T[]

Den endimensionella, nollbaserade sökfunktionen Array .

startIndex
Int32

Det nollbaserade startindexet för sökningen.

count
Int32

Antalet element i avsnittet som ska sökas.

match
Predicate<T>

Det Predicate<T> som definierar villkoren för elementet som ska sökas efter.

Returer

Det nollbaserade indexet för den första förekomsten av ett element som matchar de villkor som definieras av match, om det hittas, annars -1.

Undantag

array är null.

-eller-

match är null.

startIndex är mindre än noll eller större än längden på array.

-eller-

count är mindre än noll.

-eller-

startIndex och count ange inte ett giltigt avsnitt i array.

Kommentarer

Array Söks framåt med början vid startIndex och slutar på startIndex plus count minus 1, om count är större än 0.

Predicate<T> är ett ombud till en metod som returnerar true om objektet som skickas till det matchar de villkor som definierats i ombudet. Elementen array i skickas individuellt till Predicate<T>.

Den här metoden är en O()-nåtgärd, där n är count.

Se även

Gäller för