Array.FindIndex Metódus

Definíció

Olyan elemet keres, amely megfelel egy adott predikátum által meghatározott feltételeknek, és az első előfordulás nulla alapú indexét adja vissza annak egy Array vagy egy részén belül.

Túlterhelések

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

Olyan elemet keres, amely megfelel a megadott predikátum által meghatározott feltételeknek, és az első előfordulás nulla alapú indexét adja vissza az egészben Array.

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

Olyan elemet keres, amely megfelel a megadott predikátum által meghatározott feltételeknek, és visszaadja az első előfordulás nulla alapú indexét a megadott indextől az utolsó elemig terjedő elemek tartományán Array belül.

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

Olyan elemet keres, amely megfelel a megadott predikátum által meghatározott feltételeknek, és visszaadja az első előfordulás nulla alapú indexét a megadott indexnél kezdődő elemek tartományán Array belül, és a megadott számú elemet tartalmazza.

Példák

Az alábbi példakód az általános metódus mindhárom túlterhelését FindIndex mutatja be. Létrejön egy sztringtömb, amely 8 dinoszaurusznevet tartalmaz, amelyek közül kettő (az 1. és az 5. pozícióban) "szinonimaszótár" végződéssel végződik. A példakód egy keresési predikátum metódust EndsWithSaurusis definiál, amely egy sztringparamétert fogad el, és logikai értéket ad vissza, amely jelzi, hogy a bemeneti sztring "szinonimaszótárban" végződik-e.

A FindIndex<T>(T[], Predicate<T>) metódus túlterhelése az elejétől áthalad a tömbön, és minden elemet átad a EndsWithSaurus metódusnak. A keresés leáll, ha a EndsWithSaurus metódus az 1. pozícióban adja vissza true az elemet.

Note

C#, F# és Visual Basic esetén nem szükséges explicit módon létrehozni a Predicate<string> delegáltat (Predicate(Of String) Visual Basic). Ezek a nyelvek a megfelelő delegáltat a környezetből következtetik, és automatikusan létrehozzák.

A FindIndex<T>(T[], Int32, Predicate<T>) metódus túlterhelése a tömb 2. pozíciótól kezdődő és a tömb végéig tartó keresésére szolgál. Az 5. pozícióban találja meg az elemet. Végül a FindIndex<T>(T[], Int32, Int32, Predicate<T>) metódus túlterhelése a 2. pozíciótól kezdődő három elem tartományának keresésére szolgál. -1 ad vissza, mert ebben a tartományban nincsenek olyan dinoszaurusznevek, amelyek "szinonimaszótárral" végződnek.

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>)

Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs

Olyan elemet keres, amely megfelel a megadott predikátum által meghatározott feltételeknek, és az első előfordulás nulla alapú indexét adja vissza az egészben 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

Típusparaméterek

T

A tömb elemeinek típusa.

Paraméterek

array
T[]

Az egydimenziós, nulla alapú Array keresés.

match
Predicate<T>

Ez Predicate<T> határozza meg a keresendő elem feltételeit.

Válaszok

Egy elem első előfordulásának nulla alapú indexe, amely megfelel az adott elem által matchmeghatározott feltételeknek, ha található; egyébként -1.

Kivételek

array az null.

-vagy-

match az null.

Megjegyzések

A Array rendszer az első elemtől kezdve az utolsó elemig előre keres.

Ez Predicate<T> egy olyan metódus delegáltja, amely akkor ad vissza true , ha az átadott objektum megfelel a delegáltban meghatározott feltételeknek. A rendszer array az elemeket egyenként továbbítja a Predicate<T>.

Ez a metódus egy O(n) művelet, ahol n a Length .array

Lásd még

A következőre érvényes:

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

Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs

Olyan elemet keres, amely megfelel a megadott predikátum által meghatározott feltételeknek, és visszaadja az első előfordulás nulla alapú indexét a megadott indextől az utolsó elemig terjedő elemek tartományán Array belül.

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

Típusparaméterek

T

A tömb elemeinek típusa.

Paraméterek

array
T[]

Az egydimenziós, nulla alapú Array keresés.

startIndex
Int32

A keresés nulla alapú kezdőindexe.

match
Predicate<T>

Ez Predicate<T> határozza meg a keresendő elem feltételeit.

Válaszok

Egy elem első előfordulásának nulla alapú indexe, amely megfelel az adott elem által matchmeghatározott feltételeknek, ha található; egyébként -1.

Kivételek

array az null.

-vagy-

match az null.

startIndexkisebb, mint nulla vagy nagyobb, mint a hossza.array

Megjegyzések

A Array rendszer az utolsó elemtől startIndex kezdődően és az utolsó elemig előre keres.

Ez Predicate<T> egy olyan metódus delegáltja, amely akkor ad vissza true , ha az átadott objektum megfelel a delegáltban meghatározott feltételeknek. A rendszer array az elemeket egyenként továbbítja a Predicate<T>.

Ez a metódus egy O(n) művelet, ahol n az elemek száma a végétől startIndex a végéig array.

Lásd még

A következőre érvényes:

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

Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs
Forrás:
Array.cs

Olyan elemet keres, amely megfelel a megadott predikátum által meghatározott feltételeknek, és visszaadja az első előfordulás nulla alapú indexét a megadott indexnél kezdődő elemek tartományán Array belül, és a megadott számú elemet tartalmazza.

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

Típusparaméterek

T

A tömb elemeinek típusa.

Paraméterek

array
T[]

Az egydimenziós, nulla alapú Array keresés.

startIndex
Int32

A keresés nulla alapú kezdőindexe.

count
Int32

A keresendő szakasz elemeinek száma.

match
Predicate<T>

Ez Predicate<T> határozza meg a keresendő elem feltételeit.

Válaszok

Egy elem első előfordulásának nulla alapú indexe, amely megfelel az adott elem által matchmeghatározott feltételeknek, ha található; egyébként -1.

Kivételek

array az null.

-vagy-

match az null.

startIndexkisebb, mint nulla vagy nagyobb, mint a hossza.array

-vagy-

count kisebb, mint nulla.

-vagy-

startIndex és count ne adjon meg érvényes szakaszt a következőben array: .

Megjegyzések

A Array program a 0-nál nagyobb mínusz 1-nél startIndex kezdődik startIndex és végződik countcount.

Ez Predicate<T> egy olyan metódus delegáltja, amely akkor ad vissza true , ha az átadott objektum megfelel a delegáltban meghatározott feltételeknek. A rendszer array az elemeket egyenként továbbítja a Predicate<T>.

Ez a metódus egy O(n) művelet, ahol n van count.

Lásd még

A következőre érvényes: