Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Enumerable.Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>)

 

Data di pubblicazione: ottobre 2016

Proietta ogni elemento di una sequenza in una nuova forma.

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IEnumerable<TResult> Select<TSource, TResult>(
	this IEnumerable<TSource> source,
	Func<TSource, TResult> selector
)

Parametri

source
Type: System.Collections.Generic.IEnumerable<TSource>

Sequenza di valori su cui richiamare una funzione di trasformazione.

selector
Type: System.Func<TSource, TResult>

Funzione di trasformazione da applicare a ogni elemento.

Valore restituito

Type: System.Collections.Generic.IEnumerable<TResult>

Un IEnumerable<T> i cui elementi sono il risultato ottenuto richiamando la funzione di trasformazione su ogni elemento di source.

Parametri tipo

TSource

Tipo degli elementi di source.

TResult

Tipo del valore restituito dall'oggetto selector.

Exception Condition
ArgumentNullException

source o selector è null.

Questo metodo viene implementato tramite esecuzione posticipata. Il valore restituito immediato è un oggetto che archivia tutte le informazioni necessarie per eseguire l'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto viene enumerata chiamando il relativo GetEnumerator metodo direttamente o tramite foreach in Visual C# o For Each in Visual Basic.

Questo metodo di proiezione richiede la funzione di trasformazione, selector, per produrre un valore per ogni valore nella sequenza di origine, source. Se selector restituisce un valore che è un insieme, spetta al consumer di sottosequenze manualmente. In questo caso, potrebbe essere preferibile se la query restituire restituisse una singola sequenza di valori. A tale scopo, utilizzare il SelectMany<TSource, TResult> metodo invece Select<TSource, TResult>. Anche se SelectMany è simile a Select, la differenza che la funzione di trasformazione restituisce una raccolta che viene quindi espansa da SelectMany prima che venga restituito.

Nella sintassi delle espressioni di query, un select (Visual C#) o Select (Visual Basic) clausola viene convertita in una chiamata di Select.

Esempio di codice seguente viene illustrato come utilizzare Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>) per proiettare su una sequenza di valori.

IEnumerable<int> squares =
    Enumerable.Range(1, 10).Select(x => x * x);

foreach (int num in squares)
{
    Console.WriteLine(num);
}
/*
 This code produces the following output:

 1
 4
 9
 16
 25
 36
 49
 64
 81
 100
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: