Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo Enumerable.Cast<TResult>

Esegue il cast degli elementi di un oggetto 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 di tipo

TResult

Tipo su cui eseguire il cast degli elementi di source.

Parametri

source
Tipo: System.Collections.IEnumerable
Oggetto IEnumerable che contiene gli elementi da convertire in tipo TResult.

Valore restituito

Tipo: System.Collections.Generic.IEnumerable<TResult>
Oggetto IEnumerable<T> che contiene ogni elemento della sequenza di origine che ha eseguito il cast al tipo specificato.

Nota sull'utilizzo

In Visual Basic e C# è possibile chiamare questo metodo come metodo di istanza su qualsiasi oggetto di tipo IEnumerable. Per chiamare il metodo utilizzando la sintassi del metodo di istanza, omettere il primo parametro. Per ulteriori informazioni, vedere Metodi di estensione (Visual Basic) o Metodi di estensione (Guida per programmatori C#).

EccezioneCondizione
ArgumentNullException

source è null.

InvalidCastException

Non è possibile eseguire il cast di un elemento della sequenza al tipo TResult.

Questo metodo viene implementato tramite esecuzione posticipata. Il valore restituito immediato è un oggetto che contiene tutte le informazioni necessarie all'esecuzione dell'azione. La query rappresentata da questo metodo non viene eseguita finché l'oggetto non viene enumerato tramite chiamata diretta al relativo metodo GetEnumerator o utilizzando l'oggetto foreach in Visual C# oppure For Each in Visual Basic.

Il metodo Cast<TResult>(IEnumerable) consente agli operatori di query standard di venire richiamati sulle raccolte non generiche fornendo le necessarie informazioni sul tipo. Ad esempio, ArrayList non implementa IEnumerable<T>, ma chiamando Cast<TResult>(IEnumerable) sull'oggetto ArrayList, gli operatori di query standard possono poi essere utilizzati per eseguire una query sulla sequenza.

Se non è possibile eseguire il cast di un elemento sul tipo TResult, questo metodo genererà un'eccezione. Per ottenere solo gli elementi di cui è possibile eseguire il cast al tipo TResult, utilizzare il metodo OfType<TResult> anziché il metodo Cast<TResult>(IEnumerable).

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

from int i in objects

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare Cast<TResult>(IEnumerable) per consentire l'uso degli operatori di query standard su un oggetto 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


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft