Listar el método FindLastIndex() en C# | Conjunto -2

Este método se usa para buscar un elemento que coincida con las condiciones definidas por un predicado especificado y devuelve el índice de base cero de la última aparición dentro de List<T> o una parte de ella. Hay 3 métodos en la lista de sobrecarga de este método:

Aquí, discutiremos solo los dos últimos métodos.

Método FindLastIndex(Int32, Predicado<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 última aparición dentro del rango de elementos en List <T> que se extiende desde el primer elemento hasta el índice especificado.

Sintaxis: public int FindLastIndex (int start, Predicate<T> match);

Parámetros:
start : Es el índice de inicio desde el inicio de la búsqueda.
match : Es el predicado delegado que define las condiciones del elemento buscado.

Valor devuelto: si se encuentra el elemento, devuelve el índice basado en cero de tipo Int32 de la última aparición de un elemento que coincide con una condición especificada por el parámetro » coincidencia «. Y si no se encuentra, devuelve » -1 «.

Excepciones:

  • ArgumentNullException: si la coincidencia es nula .
  • ArgumentOutOfRangeException: si el inicio está fuera del rango de índices válidos para List<T>.

Los siguientes programas ilustran el uso del método mencionado anteriormente:

Ejemplo 1:

// C# program to illustrate the 
// List<T>.FindLastIndex(Int32,
// Predicate <T>) Method
using System;
using System.Collections.Generic;
  
class GFG {
      
    // Main Method
    public static void Main()
    {
        // List creation
        // List name is "PC"
        List<string> PC = new List<string>();
  
        // elements in the List
        PC.Add("Computer");
        PC.Add("keyboard");
        PC.Add("laptop");
        PC.Add("mouse");
  
        // the search will starts from index 2
        int indx = PC.FindLastIndex(2, FindIndex);
          
        Console.WriteLine(indx);
    }
  
    // Conditional method
    private static bool FindIndex(string g)
    {
  
        if (g == "Computer") 
        {
            return true;
        }
          
        else 
        {
            return false;
        }
    }
}

Producción:

0

Ejemplo 2:

// C# program to illustrate the 
// List<T>.FindLastIndex(Int32,
// Predicate <T>) Method
using System;
using System.Collections.Generic;
  
class GFG {
      
    // Main Method
    public static void Main()
    {
          
        // List creation
        // List name is "PC"
        List<int> PC = new List<int>();
  
        // elements in the List
        PC.Add(3);
        PC.Add(4);
        PC.Add(5);
        PC.Add(6);
  
        // condition is "FindIndex"
        int indx = PC.FindLastIndex(2, FindIndex);
  
        Console.WriteLine(indx);
    }
  
    // Conditional method
    private static bool FindIndex(int g)
    {
          
        // search for "5"
        if (g == 5)
          
        {
            return true;
        }
          
        else 
        {
            return false;
        }
    }
}

Producción:

2

Ejemplo 3: En este ejemplo, usamos un archivo XML y buscamos un elemento desde un índice de inicio e imprimimos el índice de ese elemento, si no se encuentra el elemento, imprime «-1″ y, si lo encuentra, imprime el índice. El artículo es » GeeksForGeeks «. Pero aquí no tenemos el archivo XML, y aquí el compilador da una excepción.

// C# program to illustrate the 
// List<T>.FindLastIndex(Int32,
// Predicate <T>) Method
using System;
using System.Collections.Generic;
using System.Linq;
  
class GFG {
  
    // here List<T> contains the object "gfg" using
    // data from a sample XML file
    // List initialize
    private static List<gfg> geeks = new List<gfg>();
  
    public static void Main()
    {
  
        // if the item is found then
        // it prints the index
        // if not found prints "-1"
        int x = geeks.FindLastIndex(3, FindGFG);
        Console.WriteLine(x);
          
    }
  
    // conditional method
    private static bool FindGFG(gfg g)
    {
  
         // item is "GeeksForGeeks"
        if (g.G == "GeeksForGeeks")
        {
            return true;
        }
  
        else
        {
            return false;
        }
    }
}
  
public class gfg {
      
    public string G
    {
        get;
        set;
    }
}

Error de tiempo de ejecución:

Excepción no controlada:
System.ArgumentOutOfRangeException: ArgumentOutOfRange_Index
Nombre del parámetro: startIndex

Método FindLastIndex(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 última aparición dentro de toda la Lista y la lista contiene el número especificado de elementos y termina en el índice especificado.

Sintaxis: public int FindLastIndex (int startIndex, int count, Predicate<T> match);

Parámetros:
startIndex : Es el índice inicial de base cero de la búsqueda hacia atrás.
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: si se encuentra el elemento, devuelve el índice basado en cero del tipo Int32 del último elemento que coincide con una condición especificada por el parámetro «coincidencia». Y si no se encuentra, devuelve «-1».

Excepciones:

  • ArgumentNullException: si la » coincidencia » es nula.
  • ArgumentOutOfRangeException: si «startIndex» está fuera del rango o «count» es menor que 0 (cero) o «startIndex» y «count» no especifican una sección válida en la Lista

Ejemplo:

// C# Program to illustrate the 
// FindLastIndex(Int32, Int32, 
// Predicate<T>) Method
using System;
using System.Collections.Generic;
    
class GFG
{
    public static void Main()
    {
        // List name is "mylist"
        List<string> mylist = new List<string>();
            
        // Elements in the List
        mylist.Add("C");
        mylist.Add("C++");
        mylist.Add("Java");
        mylist.Add("Python");
        mylist.Add("C#");
        mylist.Add("HTML");
        mylist.Add("Java");
        mylist.Add("PHP");
            
        // the search will starts from index 2
        // the number of element is 3
        int indx = mylist.FindLastIndex(2, 3, FindIndex);
          
        Console.WriteLine("The index of Java is: "+indx);
    }
        
    // Conditional method
    private static bool FindIndex(string g)
    {
    
        if (g == "Java")
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

Producción:

The index of Java is: 2

Nota:

  • El List<T> se busca hacia atrás comenzando en startIndex y terminando en el primer elemento.
  • El Predicate<T> es un delegado de un método que devuelve verdadero si el objeto que se le pasa coincide con las condiciones definidas en el delegado. Los elementos del List<T> actual se pasan individualmente al delegado de Predicate<T>.
  • Este método realiza una búsqueda lineal; por lo tanto, este método es una operación O(n), donde n es el número de elementos desde el principio de List<T> hasta el comienzo.

Publicación traducida automáticamente

Artículo escrito por SoumikMondal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *