Operatori elemento in LINQ

Ad eccezione di DefaultIfEmpty, tutti gli altri otto operatori di elementi di query standard restituiscono un singolo elemento da una raccolta.

Operatore Descrizione Sintassi delle espressioni di query C # Sintassi delle espressioni di query VB
ElementAt Restituisce un elemento presente all'interno di un indice specifico in una raccolta Non applicabile Non applicabile
ElementAtOrDefault Uguale a ElementAt tranne per il fatto che restituisce anche un valore predefinito nel caso in cui l'indice specifico sia fuori intervallo Non applicabile Non applicabile
Primo Recupera il primo elemento all'interno di una raccolta o il primo elemento che soddisfa una condizione specifica Non applicabile Non applicabile
FirstOrDefault Uguale a First tranne per il fatto che restituisce anche un valore predefinito nel caso in cui non esistano tali elementi Non applicabile Non applicabile
Scorso Recupera l'ultimo elemento presente in una raccolta o l'ultimo elemento che soddisfa una condizione specifica Non applicabile Non applicabile
LastOrDefault Uguale a Last tranne per il fatto che restituisce anche un valore predefinito nel caso in cui non esista alcun elemento di questo tipo Non applicabile Non applicabile
Single Restituisce l'elemento solitario di una raccolta o l'elemento solitario che soddisfa una determinata condizione Non applicabile Non applicabile
SingleOrDefault Uguale a Single tranne per il fatto che restituisce un valore predefinito se non esiste alcun elemento solitario di questo tipo Non applicabile Non applicabile
DefaultIfEmpty Restituisce un valore predefinito se la raccolta o l'elenco è vuoto o nullo Non applicabile Non applicabile

Esempio di ElementAt: metodo 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 il codice precedente di C # o VB viene compilato ed eseguito, produce il seguente risultato:

The name chosen at random is Ito, Shu

Note - Qui, l'output di cui sopra cambierà dinamicamente e i nomi verranno scelti in modo casuale.

Esempio di metodo 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

Quando il codice precedente di C # o VB viene compilato ed eseguito, produce il seguente risultato:

9

Esempio di metodo 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

Quando il codice precedente di C # o VB viene compilato ed eseguito, produce il seguente risultato:

19