2009-10-18 5 views

Répondre

9

La méthode Convert.ChangeType nécessite une implémentation de IConvertible - essentiellement une déclaration de la façon de convertir du type source au type cible. System.Array n'implémente pas l'interface IConvertible. Ce que vous essayez de faire est de passer d'un type à l'autre, et (IEnumerable)list fonctionne parfaitement bien.

Edit:

Comme le dit Jon, le casting ici est implicite, l'affectation si simple (c.-à-conversion implicite) à un IEnumerable fonctionne également.

+0

Vous n'avez même pas besoin d'un cast - la conversion est implicite. –

+0

True. Laisser l'exemple de casting explicite est juste pour indiquer comment faire un casting, si c'est ce que l'op essaie de faire. –

4

Il suffit d'utiliser la conversion implicite et il est très bien:

IEnumerable enumerable = list; 

Comme le dit Nader , Convert.ChangeType fonctionne avec IConvertible. Personnellement, je ne me souviens pas de la dernière fois que je l'ai utilisé - je m'en tiendrais à des castes simples, si possible.

Questions connexes