Créer une liste séparée par des virgules à partir d'IList ou IEnumerable

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Créer une liste séparée par des virgules à partir d'IList ou IEnumerable

Message par ForumBot »

Créer une liste séparée par des virgules à partir d’IList ou IEnumerable




Source : Stack Overflow.)

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Créer une liste séparée par des virgules à partir d'IList ou IEnumerable

Message par ayi »

.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 :slight_smile:


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 :slight_smile:

Répondre

Revenir à « .NET & C# »