Operadores de elemento em LINQ

Exceto o DefaultIfEmpty, todos os outros oito operadores de elemento de consulta padrão retornam um único elemento de uma coleção.

Operador Descrição Sintaxe de expressão de consulta C # Sintaxe de expressão de consulta VB
ElementAt Retorna um elemento presente em um índice específico em uma coleção Não aplicável Não aplicável
ElementAtOrDefault O mesmo que ElementAt, exceto pelo fato de que também retorna um valor padrão no caso do índice específico estar fora do intervalo Não aplicável Não aplicável
Primeiro Recupera o primeiro elemento em uma coleção ou o primeiro elemento que satisfaz uma condição específica Não aplicável Não aplicável
FirstOrDefault O mesmo que Primeiro, exceto pelo fato de que também retorna um valor padrão no caso de não haver tais elementos Não aplicável Não aplicável
Último Recupera o último elemento presente em uma coleção ou o último elemento que satisfaça uma condição específica Não aplicável Não aplicável
LastOrDefault Igual ao Último, exceto pelo fato de que também retorna um valor padrão no caso de não haver qualquer um desses elementos Não aplicável Não aplicável
solteiro Retorna o elemento solitário de uma coleção ou o elemento solitário que satisfaz uma determinada condição Não aplicável Não aplicável
SingleOrDefault O mesmo que Único, exceto que também retorna um valor padrão se não houver nenhum elemento solitário Não aplicável Não aplicável
DefaultIfEmpty Retorna um valor padrão se a coleção ou lista estiver vazia ou nula Não aplicável Não aplicável

Exemplo 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

Quando o código acima de C # ou VB é compilado e executado, ele produz o seguinte resultado -

The name chosen at random is Ito, Shu

Note - Aqui, a saída acima mudará dinamicamente e os nomes serão escolhidos aleatoriamente.

Exemplo de Primeiro - Método 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

Quando o código acima de C # ou VB é compilado e executado, ele produz o seguinte resultado -

9

Exemplo de último - método 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

Quando o código acima de C # ou VB é compilado e executado, ele produz o seguinte resultado -

19