Array.FindIndex Yöntem

Tanım

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve bir veya bir bölümü içinde Array ilk oluşumun sıfır tabanlı dizinini döndürür.

Aşırı Yüklemeler

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

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve tüm Arrayiçindeki ilk oluşumun sıfır tabanlı dizinini döndürür.

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

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve öğesindeki belirtilen dizinden son öğeye kadar uzanan öğe Array aralığındaki ilk oluşumun sıfır tabanlı dizinini döndürür.

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

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve içinde belirtilen dizinde başlayan ve belirtilen sayıda öğeyi içeren öğe Array aralığındaki ilk oluşumun sıfır tabanlı dizinini döndürür.

Örnekler

Aşağıdaki kod örneği, genel yöntemin üç aşırı yüklemesini FindIndex de gösterir. 8 dinozor adı içeren dizelerden oluşan bir dizi oluşturulur, bunlardan ikisi (1 ve 5 konumundakiler) "saurus" ile bitmektedir. Kod örneği ayrıca, bir dize parametresi kabul eden ve giriş dizesinin "eş anlamlılar" ile bitip bitmediğini belirten bir Boole değeri döndüren adlı EndsWithSaurusarama koşulu yöntemini tanımlar.

Yöntem FindIndex<T>(T[], Predicate<T>) aşırı yüklemesi, her öğeyi sırayla yöntemine geçirerek diziyi EndsWithSaurus baştan geçirir. Yöntem 1 konumundaki EndsWithSaurus öğe için döndürdüğünde true arama durdurulur.

Not

C#, F# ve Visual Basic'da temsilcinin Predicate<string> (Predicate(Of String)Visual Basic içinde) açıkça oluşturulması gerekmez. Bu diller doğru temsilciyi bağlamdan çıkarır ve otomatik olarak oluşturur.

Yöntem FindIndex<T>(T[], Int32, Predicate<T>) aşırı yüklemesi, 2 konumundan başlayıp dizinin sonuna kadar devam eden dizide arama yapmak için kullanılır. 5 konumundaki öğesini bulur. Son olarak yöntem aşırı yüklemesi, FindIndex<T>(T[], Int32, Int32, Predicate<T>) 2. konumdan başlayarak üç öğelik aralığı aramak için kullanılır. Bu aralıkta "eş anlamlılar" ile biten dinozor adları olmadığından -1 değerini döndürür.

using namespace System;

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

void main()
{
    array<String^>^ dinosaurs = { "Compsognathus", 
        "Amargasaurus",   "Oviraptor",      "Velociraptor", 
        "Deinonychus",    "Dilophosaurus",  "Gallimimus", 
        "Triceratops" };

    Console::WriteLine();
    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    Console::WriteLine("\nArray::FindIndex(dinosaurs, EndsWithSaurus): {0}", 
        Array::FindIndex(dinosaurs, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, gcnew Predicate<String^>(EndsWithSaurus)));

    Console::WriteLine("\nArray::FindIndex(dinosaurs, 2, 3, EndsWithSaurus): {0}",
        Array::FindIndex(dinosaurs, 2, 3, gcnew Predicate<String^>(EndsWithSaurus)));
}

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

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve tüm Arrayiçindeki ilk oluşumun sıfır tabanlı dizinini döndürür.

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ür Parametreleri

T

Dizinin öğelerini türü.

Parametreler

array
T[]

Arama için tek boyutlu, sıfır tabanlı Array .

match
Predicate<T>

Predicate<T> Aranacak öğenin koşullarını tanımlayan.

Döndürülenler

Int32

tarafından tanımlanan koşullarla matcheşleşen bir öğenin ilk oluşumunun sıfır tabanlı dizini; bulunursa, aksi takdirde -1.

Özel durumlar

array, null değeridir.

-veya-

match, null değeridir.

Açıklamalar

Array, ilk öğeden başlayıp son öğeyle biten ileriye doğru arandı.

, Predicate<T> nesnesine geçirilen nesnenin temsilcide tanımlanan koşullarla eşleşmesi durumunda döndüren true bir yöntemin temsilcisidir. öğeleri array tek tek öğesine Predicate<T>geçirilir.

Bu yöntem bir O(n) işlemidir ve burada n değeridir Length array.

Ayrıca bkz.

Şunlara uygulanır

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

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve öğesindeki belirtilen dizinden son öğeye kadar uzanan öğe Array aralığındaki ilk oluşumun sıfır tabanlı dizinini döndürür.

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ür Parametreleri

T

Dizinin öğelerini türü.

Parametreler

array
T[]

Arama için tek boyutlu, sıfır tabanlı Array .

startIndex
Int32

Arama işleminin sıfır tabanlı başlangıç dizini.

match
Predicate<T>

Predicate<T> Aranacak öğenin koşullarını tanımlayan.

Döndürülenler

Int32

tarafından tanımlanan koşullarla matcheşleşen bir öğenin ilk oluşumunun sıfır tabanlı dizini; bulunursa, aksi takdirde -1.

Özel durumlar

array, null değeridir.

-veya-

match, null değeridir.

startIndex , için arraygeçerli dizin aralığının dışındadır.

Açıklamalar

Array öğesinden başlayıp startIndex son öğeyle biten ileriye doğru arandı.

, Predicate<T> nesnesine geçirilen nesnenin temsilcide tanımlanan koşullarla eşleşmesi durumunda döndüren true bir yöntemin temsilcisidir. öğeleri array tek tek öğesine Predicate<T>geçirilir.

Bu yöntem, öğesinden startIndex sonuna kadar olan öğelerin sayısı olan n bir O(n) işlemidirarray.

Ayrıca bkz.

Şunlara uygulanır

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

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve içinde belirtilen dizinde başlayan ve belirtilen sayıda öğeyi içeren öğe Array aralığındaki ilk oluşumun sıfır tabanlı dizinini döndürür.

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ür Parametreleri

T

Dizinin öğelerini türü.

Parametreler

array
T[]

Arama için tek boyutlu, sıfır tabanlı Array .

startIndex
Int32

Arama işleminin sıfır tabanlı başlangıç dizini.

count
Int32

Sıralanacak bölümdeki öğelerin sayısı.

match
Predicate<T>

Predicate<T> Aranacak öğenin koşullarını tanımlayan.

Döndürülenler

Int32

tarafından tanımlanan koşullarla matcheşleşen bir öğenin ilk oluşumunun sıfır tabanlı dizini; bulunursa, aksi takdirde -1.

Özel durumlar

array, null değeridir.

-veya-

match, null değeridir.

startIndex , için arraygeçerli dizin aralığının dışındadır.

-veya-

count, sıfırdan küçüktür.

-veya-

startIndex ve count içinde arraygeçerli bir bölüm belirtmeyin.

Açıklamalar

Array, 0'dan startIndex büyüksecount, artı eksi 1 ile count startIndex başlayan ve biten ileriye doğru aranılır.

, Predicate<T> nesnesine geçirilen nesnenin temsilcide tanımlanan koşullarla eşleşmesi durumunda döndüren true bir yöntemin temsilcisidir. öğeleri array tek tek öğesine Predicate<T>geçirilir.

Bu yöntem bir O(n) işlemidir; burada n olur count.

Ayrıca bkz.

Şunlara uygulanır