J'essaye d'accomplir quelque chose en C# que je fais facilement en Java. Mais ayant des problèmes. J'ai un nombre indéfini de tableaux d'objets de type T. A implémente une interface I. J'ai besoin d'un tableau de I à la fin qui est la somme de toutes les valeurs de tous les tableaux. Supposons qu'aucun tableau ne contienne les mêmes valeurs.Conversion d'un tableau de type T en un tableau de type I où T implémente I dans C#
Ce code Java fonctionne.
ArrayList<I> list = new ArrayList<I>();
for (Iterator<T[]> iterator = arrays.iterator(); iterator.hasNext();) {
T[] arrayOfA = iterator.next();
//Works like a charm
list.addAll(Arrays.asList(arrayOfA));
}
return list.toArray(new T[list.size()]);
Toutefois, ce code C# ne compte pas:
List<I> list = new List<I>();
foreach (T[] arrayOfA in arrays)
{
//Problem with this
list.AddRange(new List<T>(arrayOfA));
//Also doesn't work
list.AddRange(new List<I>(arrayOfA));
}
return list.ToArray();
Il est donc évident que je dois obtenir en quelque sorte le tableau de T[]
dans un IEnumerable<I>
d'ajouter à la liste, mais je ne suis pas sûr que le meilleur façon de le faire? Aucune suggestion?
EDIT: Développement dans VS 2008 mais doit être compilé pour .NET 2.0.
Quelle erreur obtenez-vous? –
Argument invalide dans les deux cas. nouvelle liste (arrayOfA) - ne list.AddRange (nouvelle liste (arrayOfA)) - (mise à jour échoue –
re commentaire/2.0) –