Convertir IList à un tableau en C#
Je veux convertir IList de tableau:
Veuillez voir mon code:
IList list = new ArrayList();
list.Add(1);
Array array = new Array[list.Count];
list.CopyTo(array, 0);
Pourquoi je Système.InvalidCastException : Au moins un élément dans le tableau source ne peut pas être jeté à la destination de la matrice de type? Comment cela peut être résolu en supposant que je ne peux pas utiliser ArrayList type de liste variable ?
Mise à jour 1: que j'utilise .NET 1.1. Donc je ne peux pas utiliser des Génériques, Linq et ainsi de suite. Je veux juste recevoir le résultat pour le cas le plus fréquent - entier a été donnée à titre d'exemple, j'ai besoin de ce code fonctionne pour tous les types donc j'utilise Tableau ici (peut-être que je me trompe sur l'utilisation de Tableau mais j'ai besoin, une fois de plus, cas le plus courant).
List<T>
à la place.Êtes-vous à l'aide .NET 2.0? Si vous n'êtes pas alors tout cela devient beaucoup plus simple avec le générique des collections.
stackoverflow.com/questions/268671/...
Quelle est la version de .NET? Système.Linq ajoute une fonction très utile
ToArray()
OriginalL'auteur Michael Z | 2012-02-29
Vous devez vous connecter pour publier un commentaire.
Vous êtes en train de créer un tableau de
Array
valeurs. 1 est uneint
, pas unArray
. Vous devriez avoir:ou, idéalement, ne pas utiliser de la non-types génériques pour commencer... l'utilisation de la Liste au lieu de
ArrayList
,IList<T>
au lieu deIList
etc.EDIT: Notez que la troisième ligne pourrait facilement être:
à la place.
Que dois-je faire si je ne connais pas le type d'éléments dans le tableau? L'entier était juste exemple - je besoin d'une approche plus générique(sans les Génériques)
Vous pouvez utiliser
object[]
à la place.OriginalL'auteur Jon Skeet
Vous pouvez utiliser Cast et ToArray:
OriginalL'auteur Joe
Je suis surpris que
même compile mais il ne fait pas ce que vous souhaitez. Utilisation
Et, standard remarque: si vous pouvez utiliser C#3 ou plus tard, d'éviter ArrayList autant que possible. Vous aurez probablement à être plus heureux avec un
List<int>
OriginalL'auteur Henk Holterman