Créer une liste séparée par des virgules à partir d’IList ou IEnumerable
Source : Stack Overflow.)
.NET 4+
IList<string> strings = new List<string>{"1","2","testing"};
string joined = string.Join(",", strings);
Détails et solutions pré .Net 4.0
IEnumerable<string> peut être converti en tableau de chaînes très facilement avec LINQ (.NET 3.5) :
IEnumerable<string> strings = ...;
string[] array = strings.ToArray();
Il est assez facile d’écrire la méthode auxiliaire équivalente si vous en avez besoin :
public static T[] ToArray(IEnumerable<T> source)
{
return new List<T>(source).ToArray();
}
Puis appelez-la comme ceci :
IEnumerable<string> strings = ...;
string[] array = Helpers.ToArray(strings);
Vous pouvez ensuite appeler string.Join. Bien sûr, vous n’êtes pas obligé d’utiliser une méthode auxiliaire :
// C# 3 and .NET 3.5 way:
string joined = string.Join(",", strings.ToArray());
// C# 2 and .NET 2.0 way:
string joined = string.Join(",", new List<string>(strings).ToArray());
La dernière est un peu lourde quand même ![]()
C’est probablement la manière la plus simple de le faire, et assez performante aussi - il y a d’autres questions sur les performances exactes, y compris (mais sans s’y limiter) celle-ci.
À partir de .NET 4.0, il y a plus de surcharges disponibles dans string.Join, donc vous pouvez en fait simplement écrire :
string joined = string.Join(",", strings);
Beaucoup plus simple ![]()