C'est probablement quelque chose de stupide que j'ai manqué, mais j'essaie de concaténer une liste d'entiers au lieu de les additionner avec:
integerArray.Aggregate((accumulator, piece) => accumulator+"," + piece)
Le compilateur s'est plaint d'une erreur d'argument. Existe-t-il un moyen simple de le faire sans avoir à passer par une boucle?
Quelle version de .NET? Dans la version 4.0, vous pouvez utiliser string.Join(",",integerArray)
. Dans 3.5, je serais tenté d'utiliser simplement string.Join(",",Array.ConvertAll(integerArray,i=>i.ToString()));
(en supposant que est un tableau). Sinon, soit make c'est un tableau, soit utilisez StringBuilder
.
Vous voulez probablement utiliser String.Join .
string.Join(",", integerArray.Select(i => i.ToString()).ToArray());
Si vous utilisez .Net 4.0, vous n'avez pas besoin de passer par les tracas de la réification d'un tableau. et peut juste faire
string.Join(",", integerArray);
L'erreur que vous obtenez est parce que vous n'avez pas utilisé le remplacement de Aggregate
qui vous permet de spécifier la graine. Si vous ne spécifiez pas la graine, elle utilise le type de la collection.
integerArray.Aggregate("", (accumulator, piece) => accumulator + "," + piece);
Juste pour ajouter une autre alternative à @ Marc
var list = string.Join( ",", integerArray.Select( i => i.ToString() ).ToArray() );