.NET Framework Jeter


Exemple

Cast est différent des autres méthodes de Enumerable en ce qu’il s’agit d’une méthode d’extension pour IEnumerable , pas pour IEnumerable<T> . Ainsi, il peut être utilisé pour convertir des instances de la première en instances de la dernière.

Cela ne compile pas car ArrayList pas IEnumerable<T> :

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

Cela fonctionne comme prévu:

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

Cast n'effectue pas de conversion. Ce qui suit compile mais lève InvalidCastException à l'exécution:

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

La méthode appropriée pour effectuer une conversion de conversion en une collection est la suivante:

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