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.Cast<TResult>(IEnumerable)

 

Data di pubblicazione: ottobre 2016

Esegue il cast di elementi di un IEnumerable nel tipo specificato.

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

public static IEnumerable<TResult> Cast<TResult>(
	this IEnumerable source
)

Parametri

source
Type: System.Collections.IEnumerable

Il IEnumerable che contiene gli elementi per eseguire il cast al tipo TResult.

Valore restituito

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

Un IEnumerable<T> che contiene ogni elemento della sequenza di origine il cast del tipo specificato.

Parametri tipo

TResult

Il tipo per eseguire il cast di elementi di source a.

Exception Condition
ArgumentNullException

source è null.

InvalidCastException

Un elemento nella sequenza non può essere convertito nel tipo TResult.

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.

Il Cast<TResult>(IEnumerable) metodo consente agli operatori di query standard da richiamare su insiemi non generici fornendo le informazioni sul tipo necessaria. Ad esempio, ArrayList non implementa IEnumerable<T>, mentre chiamando Cast<TResult>(IEnumerable) sul ArrayList dell'oggetto, gli operatori di query standard possono quindi essere utilizzati per eseguire query la sequenza.

Se un elemento non può essere convertito nel tipo TResult, questo metodo genererà un'eccezione. Per ottenere solo gli elementi che possono essere convertiti nel tipo TResult, utilizzare il OfType<TResult> metodo invece Cast<TResult>(IEnumerable).

In un'espressione di query, una variabile di iterazione tipizzata in modo esplicito viene convertita in una chiamata di Cast<TResult>(IEnumerable). In questo esempio viene illustrata la sintassi per una variabile di intervallo tipizzata in modo esplicito.

from int i in objects

Esempio di codice seguente viene illustrato come utilizzare Cast<TResult>(IEnumerable) per consentire l'utilizzo degli operatori di query standard su un ArrayList.

System.Collections.ArrayList fruits = new System.Collections.ArrayList();
fruits.Add("mango");
fruits.Add("apple");
fruits.Add("lemon");

IEnumerable<string> query =
    fruits.Cast<string>().OrderBy(fruit => fruit).Select(fruit => fruit);

// The following code, without the cast, doesn't compile.
//IEnumerable<string> query1 =
//    fruits.OrderBy(fruit => fruit).Select(fruit => fruit);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

// This code produces the following output: 
//
// apple 
// lemon
// mango

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: