El método List<T>.FindIndex se usa para buscar un elemento que coincida con las condiciones definidas por un predicado especificado y devuelve el índice de la primera aparición dentro de List<T>. Si no se encuentra un elemento que coincida con las condiciones, este método devolverá -1. Hay 3 métodos en la lista de sobrecarga de este método de la siguiente manera:
- Método FindIndex(Predicado<T>)
- Método FindIndex(Int32,Predicate<T>)
- Método FindIndex(Int32, Int32, Predicate<T>)
Método FindIndex(Predicado<T>)
Este método se usa para buscar un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la primera aparición dentro de List<T> completo.
Sintaxis: public int FindIndex (coincidencia Predicate<T>); Parámetro: match: Es el delegado Predicate<T> que define las condiciones del elemento a buscar.
Valor devuelto: Devuelve el índice de la primera aparición de un elemento que coincida con las condiciones definidas por match , si se encuentra. Si no se encuentra devuelve -1. Excepción: este método dará ArgumentNullException si la coincidencia es nula. Ejemplo:
csharp
// C# program to demonstrate the use of // List<T>.FindIndex (Predicate <T>) method using System; using System.Collections.Generic; class GFG1 : IComparable { public String gg { get; set; } public int CompareTo(Object o) { GFG1 e = o as GFG1; if (e == null) throw new ArgumentException("Not valid object"); return gg.CompareTo(e.gg); } } class GFG2 { String s; public GFG2(String ss) { s = ss; } public bool StartsWith(GFG1 e) { return e.gg.StartsWith(s, StringComparison.InvariantCultureIgnoreCase); } } // Driver Class class GFG3 { // Main Method public static void Main() { var e = new List<GFG1>(); // List elements e.AddRange(new GFG1[] { new GFG1{ gg = "c", }, new GFG1{ gg = "c++", }, new GFG1{ gg = "java", }, new GFG1{ gg = "C#", }, new GFG1{ gg = "Python", }, new GFG1{ gg = "Perl", }, }); e.Sort(); // sorts the list var es = new GFG2("C"); Console.WriteLine("'C' starts at index " + e.FindIndex(es.StartsWith)); es = new GFG2("P"); Console.WriteLine("'P' starts at index " + e.FindIndex(es.StartsWith)); } }
'C' starts at index 0 'P' starts at index 4
Método FindIndex(Int32, Predicado<T>)
Este método busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de la primera aparición dentro del rango de elementos de la Lista que se extiende desde el índice especificado hasta el último elemento.
Sintaxis: public int FindIndex (int startIndex, Predicate<T> match); Parámetro: startIndex: Es el índice de inicio de la búsqueda en base cero. match: Es el delegado Predicate<T> que define las condiciones del elemento a buscar.
Valor devuelto: este método devolverá el índice de la primera aparición de un elemento que coincida con las condiciones definidas por «coincidencia» , si se encuentra. Si no se encuentra devuelve -1. Excepciones:
- ArgumentNullException: si la coincidencia es nula.
- ArgumentOutOfRangeException: si startIndex está fuera del rango de índices válidos para List<T>.
Ejemplo:
csharp
// C# program to demonstrate the use of // List<T>.FindIndex (Int32, Predicate <T>) method using System; using System.Collections.Generic; class GFG1 : IComparable { public String gg { get; set; } public int CompareTo(Object o) { GFG1 e = o as GFG1; return gg.CompareTo(e.gg); } } class GFG2 { String s; public GFG2(String ss) { s = ss; } public bool StartsWith(GFG1 e) { return e.gg.StartsWith(s, StringComparison.InvariantCultureIgnoreCase); } } // Driver Class class GFG3 { // Main Method public static void Main() { var e = new List<GFG1>(); // List elements e.AddRange(new GFG1[] { new GFG1{ gg = "c", }, new GFG1{ gg = "Python", }, new GFG1{ gg = "Java", }, new GFG1{ gg = "C#", }, new GFG1{ gg = "Java", }, new GFG1{ gg = "Perl", }, }); // sorts the list e.Sort(); var es = new GFG2("C"); // Search for c start from index 1 Console.WriteLine("Search for 'C' starts at index " + e.FindIndex(1, es.StartsWith)); es = new GFG2("J"); // search for j starts from index 2 Console.WriteLine("Search for 'J' starts at index " + e.FindIndex(2, es.StartsWith)); } }
Search for 'C' starts at index 1 Search for 'J' starts at index 2
Método FindIndex(Int32, Int32, Predicate<T>)
Este método busca un elemento que coincida con las condiciones definidas por el predicado especificado y devuelve el índice de base cero de la primera aparición dentro del rango de elementos en la Lista que comienza en el índice especificado y contiene el número especificado de elementos.
Sintaxis: public int FindIndex (int startIndex, int count, Predicate<T> match); Parámetros: startIndex: Es el índice de inicio de la búsqueda en base cero. count: Es el número de elementos de la sección a buscar. match: Es el delegado Predicate<T> que define las condiciones del elemento a buscar.
Valor devuelto: este método devolverá el índice de la primera aparición de un elemento que coincida con las condiciones definidas por «coincidencia» , si se encuentra. Si no se encuentra devuelve -1. Excepciones:
- ArgumentNullException: si la coincidencia es nula.
- ArgumentOutOfRangeException: si startIndex está fuera del rango de índices válidos para List<T> o count es menor que 0 o startIndex y count no especifique una sección válida en List<T>.
Ejemplo:
csharp
// C# program to demonstrate the use of // List<T>.FindIndex (Int32, Int32, // Predicate <T>) method using System; using System.Collections.Generic; class GFG1 : IComparable { public String gg { get; set; } public int CompareTo(Object o) { GFG1 e = o as GFG1; return gg.CompareTo(e.gg); } } class GFG2 { String s; public GFG2(String ss) { s = ss; } public bool StartsWith(GFG1 e) { return e.gg.StartsWith(s, StringComparison.InvariantCultureIgnoreCase); } } // Driver Class class GFG3 { // Main Method public static void Main() { var e = new List<GFG1>(); // List elements e.AddRange(new GFG1[] { new GFG1{ gg = "c", }, new GFG1{ gg = "Python", }, new GFG1{ gg = "C++", }, new GFG1{ gg = "Java", }, new GFG1{ gg = "C#", }, new GFG1{ gg = "Perl", }, }); // sorts the list e.Sort(); var es = new GFG2("C"); // search for c start from index 1 // count is 2 here Console.WriteLine("Search for 'C' starts at index " + e.FindIndex(0, 2, es.StartsWith)); es = new GFG2("J"); // search for j starts from index 2 // count is 4 here Console.WriteLine("Search for 'J' starts at index " + e.FindIndex(2, 4, es.StartsWith)); } }
Search for 'C' starts at index 0 Search for 'J' starts at index 3
Referencia:
Publicación traducida automáticamente
Artículo escrito por SoumikMondal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA