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?
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));
}
}
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.
collection.Aggregate("", (str, obj) => str + obj.ToString() + ",");
IEnumerable<string> foo =
var result = string.Join( ",", foo );
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.
// 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" };
// Now let us join them all together:
string commaSeparatedString = String.Join(", ", items);
// This is the expected result: "WA01, WA02, WA03, WA04, WA01"
Console.WriteLine(commaSeparatedString);
Console.ReadLine();