Operadores de elementos en LINQ

Excepto DefaultIfEmpty, los ocho operadores de elementos de consulta estándar restantes devuelven un solo elemento de una colección.

Operador Descripción Sintaxis de expresión de consulta de C # Sintaxis de expresión de consulta de VB
ElementAt Devuelve un elemento presente dentro de un índice específico en una colección. No aplica No aplica
ElementAtOrDefault Igual que ElementAt excepto por el hecho de que también devuelve un valor predeterminado en caso de que el índice específico esté fuera de rango No aplica No aplica
primero Recupera el primer elemento dentro de una colección o el primer elemento que cumple una condición específica No aplica No aplica
Primero o predeterminado Igual que First, excepto el hecho de que también devuelve un valor predeterminado en caso de que no existan dichos elementos No aplica No aplica
Último Recupera el último elemento presente en una colección o el último elemento que cumple una condición específica No aplica No aplica
LastOrDefault Igual que Last, excepto el hecho de que también devuelve un valor predeterminado en caso de que no exista tal elemento No aplica No aplica
Soltero Devuelve el único elemento de una colección o el único elemento que cumple una determinada condición. No aplica No aplica
SingleOrDefault Igual que Single, excepto que también devuelve un valor predeterminado si no existe ningún elemento solitario. No aplica No aplica
DefaultIfEmpty Devuelve un valor predeterminado si la colección o lista está vacía o es nula No aplica No aplica

Ejemplo de ElementAt - Método Enumerable.ElementAt

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         string[] names = { "Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", 
                       "Hedlund, Magnus", "Ito, Shu" };
         Random random = new Random(DateTime.Now.Millisecond);

         string name = names.ElementAt(random.Next(0, names.Length));

         Console.WriteLine("The name chosen at random is '{0}'.", name);
         Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim names() As String = _{"Hartono, Tommy", "Adams, Terry", "Andersen, Henriette Thaulow", 
	                     "Hedlund, Magnus", "Ito, Shu"}

      Dim random As Random = New Random(DateTime.Now.Millisecond)

      Dim name As String = names.ElementAt(random.Next(0, names.Length))

      MsgBox("The name chosen at random is " & name)
	  
   End Sub
   
End Module

Cuando el código anterior de C # o VB se compila y ejecuta, produce el siguiente resultado:

The name chosen at random is Ito, Shu

Note - Aquí, la salida anterior cambiará dinámicamente y los nombres se elegirán al azar.

Ejemplo de método First - Enumerable.First

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         int[] numbers = { 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19 };

         int first = numbers.First();

         Console.WriteLine(first);
         Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()
   
      Dim numbers() As Integer = _{9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19}
      
      Dim first As Integer = numbers.First()

      MsgBox(first)
	  
   End Sub
   
End Module

Cuando el código anterior de C # o VB se compila y ejecuta, produce el siguiente resultado:

9

Ejemplo de método Last - Enumerable.Last

C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Operators {
   class Program {
      static void Main(string[] args) {
      
         int[] numbers = { 9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19 };

         int last = numbers.Last();

         Console.WriteLine(last);
         Console.ReadLine();
      }
   }
}

VB

Module Module1

   Sub Main()

      Dim numbers() As Integer = _{9, 34, 65, 92, 87, 435, 3, 54, 83, 23, 87, 435, 67, 12, 19};
      
      Dim last As Integer = numbers.Last()

      MsgBox(last)
	  
   End Sub
   
End Module

Cuando el código anterior de C # o VB se compila y ejecuta, produce el siguiente resultado:

19