web-dev-qa-db-fra.com

Comment convertir IEnumerable <string> en une chaîne séparée par des virgules?

Supposons qu'à des fins de débogage, je souhaite obtenir rapidement le contenu d'un IEnumerable dans une chaîne d'une ligne avec chaque élément de chaîne séparé par des virgules. Je peux le faire dans une méthode d'assistance avec une boucle foreach, mais ce n'est ni amusant ni bref. Linq peut-il être utilisé? Une autre façon courte?

45
Johann Gerell
using System;
using System.Collections.Generic;
using System.Linq;

class C
{
    public static void Main()
    {
        var a = new []{
            "First", "Second", "Third"
        };

        System.Console.Write(string.Join(",", a));

    }
}
90
한국인
string output = String.Join(",", yourEnumerable);

Méthode String.Join (String, IEnumerable

Concatène les membres d'une collection IEnumerable construite de type String, en utilisant le séparateur spécifié entre chaque membre.

30
Davide Piras
collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");
10
Jan
IEnumerable<string> foo = 
var result = string.Join( ",", foo );
4
Wiktor Zychla

pour joindre un grand tableau de chaînes à une chaîne, n'utilisez pas directement +, utilisez StringBuilder pour itérer un par un ou String.Join en une seule fois.

1
unruledboy

(a) Configurez l'IEnumerable:

        // In this case we are using a list. You can also use an array etc..
        List<string> items = new List<string>() { "WA01", "WA02", "WA03", "WA04", "WA01" };

(b) Joignez l'IEnumerable Together dans une chaîne:

        // Now let us join them all together:
        string commaSeparatedString = String.Join(", ", items);

        // This is the expected result: "WA01, WA02, WA03, WA04, WA01"

(c) À des fins de débogage:

        Console.WriteLine(commaSeparatedString);
        Console.ReadLine();
0
BKSpurgeon