.NET Framework lanciare

Esempio

Cast è diverso dagli altri metodi di Enumerable in quanto è un metodo di estensione per IEnumerable , non per IEnumerable<T> . Quindi può essere usato per convertire istanze del precedente in istanze del successivo.

Questo non viene compilato poiché ArrayList non implementa IEnumerable<T> :

var numbers = new ArrayList() {1,2,3,4,5};
Console.WriteLine(numbers.First());

Funziona come previsto:

var numbers = new ArrayList() {1,2,3,4,5};
Console.WriteLine(numbers.Cast<int>().First()); //1

Cast non esegue cast di conversione. Il seguente compila, ma lancia InvalidCastException in fase di runtime:

var numbers = new int[] {1,2,3,4,5};
decimal[] numbersAsDecimal = numbers.Cast<decimal>().ToArray();

Il modo corretto per eseguire un cast di conversione in una raccolta è il seguente:

var numbers= new int[] {1,2,3,4,5};
decimal[] numbersAsDecimal = numbers.Select(n => (decimal)n).ToArray();