List<T>.FindIndex Yöntem

Tanım

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve veya bir bölümü içinde List<T> ilk oluşumun sıfır tabanlı dizinini döndürür. Koşullarla eşleşen bir öğe bulunamazsa bu yöntem -1 döndürür.

Aşırı Yüklemeler

FindIndex(Int32, Int32, Predicate<T>)

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

FindIndex(Predicate<T>)

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

FindIndex(Int32, Predicate<T>)

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve belirtilen dizinden son öğeye genişleten öğe aralığındaki List<T> ilk oluşumun sıfır tabanlı dizinini döndürür.

FindIndex(Int32, Int32, Predicate<T>)

Kaynak:
List.cs
Kaynak:
List.cs
Kaynak:
List.cs

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

C#
public int FindIndex (int startIndex, int count, Predicate<T> match);

Parametreler

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>

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

Döndürülenler

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

Özel durumlar

match, null değeridir.

startIndex , için geçerli dizin aralığının dışındadır List<T>.

-veya-

count 0'dan küçüktür.

-veya-

startIndex ve count içinde List<T>geçerli bir bölüm belirtmeyin.

Örnekler

Aşağıdaki örnek, Name ve Idiki alanı olan bir Employee sınıfı tanımlar. Ayrıca, StartsWithalanın sınıf oluşturucusunun Employee.Name sağladığı EmployeeSearch belirtilen bir alt dizeyle başlayıp başlamadığını gösteren tek bir yöntemi olan bir sınıf tanımlarEmployeeSearch. Bu yöntemin imzasını not edin

C#
public bool StartsWith(Employee e)

, yönteme geçirilebilen temsilcinin imzasına FindIndex karşılık gelir. Örnek bir List<Employee> nesnenin örneğini oluşturur, nesneye bir dizi Employee nesne ekler ve ardından koleksiyonun FindIndex(Int32, Int32, Predicate<T>) tamamında arama yapmak için yöntemini iki kez çağırır (diğer bir ifadeyle, dizin 0'dan dizine Count - 1'e üyeler). İlk kez, alanı "J" ile başlayan ilk Employee nesneyi Name arar; ikinci kez, alanı "Ju" ile başlayan ilk Employee nesneyi Name arar.

C#
using System;
using System.Collections.Generic;

public class Employee : IComparable
{
   public String Name { get; set; }
   public int Id { get; set; }

   public int CompareTo(Object o )
   {
      Employee e = o as Employee;
      if (e == null)
         throw new ArgumentException("o is not an Employee object.");

      return Name.CompareTo(e.Name);
   }
}

public class EmployeeSearch
{
   String _s;

   public EmployeeSearch(String s)
   {
      _s = s;
   }

   public bool StartsWith(Employee e)
   {
      return e.Name.StartsWith(_s, StringComparison.InvariantCultureIgnoreCase);
   }
}

public class Example
{
   public static void Main()
   {
      var employees = new List<Employee>();
      employees.AddRange( new Employee[] { new Employee { Name = "Frank", Id = 2 },
                                           new Employee { Name = "Jill", Id = 3 },
                                           new Employee { Name = "Dave", Id = 5 },
                                           new Employee { Name = "Jack", Id = 8 },
                                           new Employee { Name = "Judith", Id = 12 },
                                           new Employee { Name = "Robert", Id = 14 },
                                           new Employee { Name = "Adam", Id = 1 } } );
      employees.Sort();

      var es = new EmployeeSearch("J");
      Console.WriteLine("'J' starts at index {0}",
                        employees.FindIndex(0, employees.Count - 1, es.StartsWith));

      es = new EmployeeSearch("Ju");
      Console.WriteLine("'Ju' starts at index {0}",
                        employees.FindIndex(0, employees.Count - 1,es.StartsWith));
   }
}
// The example displays the following output:
//       'J' starts at index 3
//       'Ju' starts at index 5

Açıklamalar

List<T>, 0'dan startIndex büyükse count artı eksi 1'den countstartIndex başlayıp 1 ile biten ileriye doğru aranılır.

Predicate<T>, nesnesine geçirilen nesnenin temsilcide tanımlanan koşullarla eşleşip eşleşmediğini döndüren true bir yöntemin temsilcisidir. Geçerli List<T> öğe öğeleri tek tek temsilciye Predicate<T> geçirilir. Temsilcinin imzası vardır:

C#
public bool methodName(T obj)

Bu yöntem doğrusal bir arama gerçekleştirir; bu nedenle, bu yöntem bir O(n) işlemidir; burada n olur count.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

FindIndex(Predicate<T>)

Kaynak:
List.cs
Kaynak:
List.cs
Kaynak:
List.cs

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

C#
public int FindIndex (Predicate<T> match);

Parametreler

match
Predicate<T>

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

Döndürülenler

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

Özel durumlar

match, null değeridir.

Örnekler

Aşağıdaki örnek, Name ve Idiki alanı olan bir Employee sınıfı tanımlar. Ayrıca, StartsWithalanın sınıf oluşturucusunun Employee.Name sağladığı EmployeeSearch belirtilen bir alt dizeyle başlayıp başlamadığını gösteren tek bir yöntemi olan bir sınıf tanımlarEmployeeSearch. Bu yöntemin imzasını not edin

C#
public bool StartsWith(Employee e)

, yönteme geçirilebilen temsilcinin imzasına FindIndex karşılık gelir. Örnek bir List<Employee> nesnenin örneğini oluşturur, ona bir dizi Employee nesne ekler ve ardından yöntemini iki kez çağırarak koleksiyonun tamamında arama yaparken, ilk kez alanı "J" ile başlayan ilk Employee nesne Name ve ikinci kez de alanı "Ju" ile başlayan ilk Employee nesne Name için çağrırFindIndex(Int32, Int32, Predicate<T>).

C#
using System;
using System.Collections.Generic;

public class Employee : IComparable
{
   public String Name { get; set; }
   public int Id { get; set; }

   public int CompareTo(Object o )
   {
      Employee e = o as Employee;
      if (e == null)
         throw new ArgumentException("o is not an Employee object.");

      return Name.CompareTo(e.Name);
   }
}

public class EmployeeSearch
{
   String _s;

   public EmployeeSearch(String s)
   {
      _s = s;
   }

   public bool StartsWith(Employee e)
   {
      return e.Name.StartsWith(_s, StringComparison.InvariantCultureIgnoreCase);
   }
}

public class Example
{
   public static void Main()
   {
      var employees = new List<Employee>();
      employees.AddRange( new Employee[] { new Employee { Name = "Frank", Id = 2 },
                                           new Employee { Name = "Jill", Id = 3 },
                                           new Employee { Name = "Dave", Id = 5 },
                                           new Employee { Name = "Jack", Id = 8 },
                                           new Employee { Name = "Judith", Id = 12 },
                                           new Employee { Name = "Robert", Id = 14 },
                                           new Employee { Name = "Adam", Id = 1 } } );
      employees.Sort();

      var es = new EmployeeSearch("J");
      Console.WriteLine("'J' starts at index {0}",
                        employees.FindIndex(es.StartsWith));

      es = new EmployeeSearch("Ju");
      Console.WriteLine("'Ju' starts at index {0}",
                        employees.FindIndex(es.StartsWith));
   }
}
// The example displays the following output:
//       'J' starts at index 3
//       'Ju' starts at index 5

Açıklamalar

List<T>, 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şip eşleşmediğini döndüren true bir yöntemin temsilcisidir. Geçerli List<T> öğe öğeleri tek tek temsilciye Predicate<T> geçirilir. Temsilcinin imzası vardır:

C#
public bool methodName(T obj)

Bu yöntem doğrusal bir arama gerçekleştirir; bu nedenle, bu yöntem bir O(n) işlemidir; burada n olur Count.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

FindIndex(Int32, Predicate<T>)

Kaynak:
List.cs
Kaynak:
List.cs
Kaynak:
List.cs

Belirtilen koşul tarafından tanımlanan koşullarla eşleşen bir öğeyi arar ve belirtilen dizinden son öğeye genişleten öğe aralığındaki List<T> ilk oluşumun sıfır tabanlı dizinini döndürür.

C#
public int FindIndex (int startIndex, Predicate<T> match);

Parametreler

startIndex
Int32

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

match
Predicate<T>

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

Döndürülenler

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

Özel durumlar

match, null değeridir.

startIndex , için geçerli dizin aralığının dışındadır List<T>.

Örnekler

Aşağıdaki örnek, Name ve Idiki alanı olan bir Employee sınıfı tanımlar. Ayrıca, StartsWithalanın sınıf oluşturucusunun Employee.Name sağladığı EmployeeSearch belirtilen bir alt dizeyle başlayıp başlamadığını gösteren tek bir yöntemi olan bir sınıf tanımlarEmployeeSearch. Bu yöntemin imzasını not edin

C#
public bool StartsWith(Employee e)

, yönteme geçirilebilen temsilcinin imzasına FindIndex karşılık gelir. Örnek bir List<Employee> nesnenin örneğini oluşturur, nesneye bir dizi Employee nesne ekler ve ardından beşinci üyesinden (dizin 4'teki üye) başlayarak koleksiyonda arama yapmak için yöntemini iki kez çağırır FindIndex(Int32, Int32, Predicate<T>) . İlk kez, alanı "J" ile başlayan ilk Employee nesneyi Name arar; ikinci kez, alanı "Ju" ile başlayan ilk Employee nesneyi Name arar.

C#
using System;
using System.Collections.Generic;

public class Employee : IComparable
{
   public String Name { get; set; }
   public int Id { get; set; }

   public int CompareTo(Object o )
   {
      Employee e = o as Employee;
      if (e == null)
         throw new ArgumentException("o is not an Employee object.");

      return Name.CompareTo(e.Name);
   }
}

public class EmployeeSearch
{
   String _s;

   public EmployeeSearch(String s)
   {
      _s = s;
   }

   public bool StartsWith(Employee e)
   {
      return e.Name.StartsWith(_s, StringComparison.InvariantCultureIgnoreCase);
   }
}

public class Example
{
   public static void Main()
   {
      var employees = new List<Employee>();
      employees.AddRange( new Employee[] { new Employee { Name = "Frank", Id = 2 },
                                           new Employee { Name = "Jill", Id = 3 },
                                           new Employee { Name = "Dave", Id = 5 },
                                           new Employee { Name = "Jack", Id = 8 },
                                           new Employee { Name = "Judith", Id = 12 },
                                           new Employee { Name = "Robert", Id = 14 },
                                           new Employee { Name = "Adam", Id = 1 } } );
      employees.Sort();

      var es = new EmployeeSearch("J");
      int index = employees.FindIndex(4, es.StartsWith);
      Console.WriteLine("Starting index of'J': {0}",
                        index >= 0 ? index.ToString() : "Not found");

      es = new EmployeeSearch("Ju");
      index = employees.FindIndex(4, es.StartsWith);
      Console.WriteLine("Starting index of 'Ju': {0}",
                        index >= 0 ? index.ToString() : "Not found");
   }
}
// The example displays the following output:
//       'J' starts at index 4
//       'Ju' starts at index 5

Açıklamalar

List<T>, en son öğeden startIndex başlayıp sonlandığında ileriye doğru arandı.

Predicate<T>, nesnesine geçirilen nesnenin temsilcide tanımlanan koşullarla eşleşip eşleşmediğini döndüren true bir yöntemin temsilcisidir. Geçerli List<T> öğe öğeleri tek tek temsilciye Predicate<T> geçirilir. Temsilcinin imzası vardır:

C#
public bool methodName(T obj)

Bu yöntem doğrusal bir arama gerçekleştirir; bu nedenle, bu yöntem bir O(n) işlemidir; burada n öğesinden startIndex sonuna List<T>kadar olan öğelerin sayısıdır.

Ayrıca bkz.

Şunlara uygulanır

.NET 9 ve diğer sürümler
Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0