2010-11-05 28 views
0

alt textComment utiliser la fonction Aggregate pour prendre une liste de chaînes et générer une seule chaîne séparée par un espace?

Voici le code source pour ce test:

var tags = new List<string> {"Portland", "Code","StackExcahnge" }; 
    const string separator = " "; 
    tagString = tags.Aggregate(t => , separator); 
    Console.WriteLine(tagString); 
    // Expecting to see "Portland Code StackExchange" 
    Console.ReadKey(); 

Mise à jour

Voici la solution que je suis maintenant en utilisant:

var tagString = string.Join(separator, tags.ToArray()); 

Turns out string.Join fait ce dont j'ai besoin.

+0

En fait, je l'ai fait @ Brian coller la source sous la image (probablement juste difficile de dire où s'arrête l'image et le texte rts). –

+0

Désolé à ce sujet. Je n'ai pas pu saisir la source de votre question, alors j'ai supposé que les deux étaient des images. S'il vous plaît ne pas tenir compte de mon commentaire. –

Répondre

6

Pour cela, vous pouvez simplement utiliser string.Join.

+0

O ya, oublié de rejoindre. Je pense que c'est vraiment ce que je cherche. –

2
string result = tags.Aggregate((acc, s) => acc + separator + s); 

ou simplement

string result = string.Join(separator, tags); 
+0

Nice! J'aime la deuxième option (court est bon). –

0

C'est ce que j'utilise

public static string Join(this IEnumerable<string> strings, string seperator) 
{ 
    return string.Join(seperator, strings.ToArray()); 
} 

Et il ressemble à ceci

tagString = tags.Join(" ")