LINQ | Operador de elemento | último o predeterminado

Los operadores de elementos se utilizan para devolver un elemento único o específico de la secuencia o colección. Por ejemplo, en una escuela cuando preguntamos, ¿quién es el director? Entonces habrá una sola persona que será el director de la escuela. Entonces el número de alumnos es una colección y el principal es el único resultado que sale de la colección.

El operador de consulta estándar de LINQ admite 8 tipos de operadores de elementos:

  1. elemento en
  2. ElementAtOrDefault
  3. Primero
  4. primero o predeterminado
  5. Ultimo
  6. último o predeterminado
  7. Único
  8. Único o predeterminado

Operador último o predeterminado

El último operador se utiliza para devolver el último elemento de la colección o secuencia. O devolver el último elemento que especifica la condición dada. O devuelva el valor predeterminado si la colección dada no contiene ningún elemento. Supera el problema InvalidOperationException del último método. Este método se puede sobrecargar de dos maneras diferentes:

  • LastOrDefault<TSource>(IEnumerable<TSource>): este método devuelve el último elemento de una secuencia o un valor predeterminado si la secuencia no contiene elementos.
  • LastOrDefault<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>): este método devuelve el último elemento de una secuencia que cumple una condición o un valor predeterminado si no se encuentra dicho elemento.

Puntos importantes:

  • No es compatible con la sintaxis de consulta en los lenguajes C# y VB.Net.
  • Admite la sintaxis del método en los lenguajes C# y VB.Net.
  • Está presente tanto en la clase Queryable como en la Enumerable.
  • El valor predeterminado de los tipos de referencia y los tipos anulables es nulo.

Ejemplo 1:

// C# program to illustrate the 
// use of LastOrDefault operator
using System;
using System.Linq;
using System.Collections.Generic;
  
class GFG {
  
    // Main Method
    static public void Main()
    {
  
        // Data source
        int[] sequence1 = {112, 44, 55, 66, 77, 777, 56};
        string[] sequence2 = {"Geeks", "GeeksforGeeks"};
        int[] sequence3 = {};
  
        // Get the element which specifies
        // the given condition Using the 
        // LastOrDefault(Condition) function
        var result1 = sequence1.LastOrDefault(seq => seq < 777);
          
        Console.WriteLine("Element: {0}", result1);
  
        // Get the only element of the sequence
        // Using LastOrDefault() function
        var result2 = sequence2.LastOrDefault();
          
        Console.WriteLine("Element: {0}", result2);
  
        // Get the default value
        var result3 = sequence3.LastOrDefault();
          
        Console.WriteLine("Default value: {0}", result3);
    }
}
Producción:

Element: 56
Element: GeeksforGeeks
Default value: 0

Ejemplo 2:

// C# program to find the 
// id of the last employee
using System;
using System.Linq;
using System.Collections.Generic;
  
// Employee details
public class Employee {
  
    public int emp_id
    {
        get;
        set;
    }
  
    public string emp_name
    {
        get;
        set;
    }
  
    public string emp_gender
    {
        get;
        set;
    }
  
    public string emp_hire_date
    {
        get;
        set;
    }
  
    public int emp_salary
    {
        get;
        set;
    }
}
  
class GFG {
  
    // Main method
    static public void Main()
    {
        List<Employee> emp = new List<Employee>() {
              
            new Employee() {emp_id = 209, emp_name = "Anjita", emp_gender = "Female",
                                    emp_hire_date = "12/3/2017", emp_salary = 20000},
  
            new Employee() {emp_id = 210, emp_name = "Soniya", emp_gender = "Female",
                                    emp_hire_date = "22/4/2018", emp_salary = 30000},
  
            new Employee() {emp_id = 211, emp_name = "Rohit", emp_gender = "Male",
                                  emp_hire_date = "3/5/2016", emp_salary = 40000},
  
            new Employee() {emp_id = 212, emp_name = "Supriya", emp_gender = "Female",
                                      emp_hire_date = "4/8/2017", emp_salary = 40000},
  
            new Employee() {emp_id = 213, emp_name = "Anil", emp_gender = "Male",
                                emp_hire_date = "12/1/2016", emp_salary = 40000},
  
            new Employee() {emp_id = 214, emp_name = "Anupriya", emp_gender = "Female",
                                         emp_hire_date = "17/6/2015", emp_salary = 50000},
        };
  
        // Query to find the id of the last 
        // employee Using LastOrDefault method
        var res = emp.Select(e => e.emp_id).LastOrDefault();
          
        Console.WriteLine("Employee Id: {0}", res);
    }
}
Producción:

Employee Id: 214

Publicación traducida automáticamente

Artículo escrito por ankita_saini 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 *