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