Détails
Création d'une liste séparée par des virgules à partir de IList ou IEnumerable
Quelle est la façon la plus propre de créer une liste de valeurs de chaîne séparées par des virgules à partir d'une IList<string>
ou d'une IEnumerable<string>
?
String.Join(...)
opère sur une string[]
et peut donc être difficile à utiliser lorsque des types tels que IList<string>
ou IEnumerable<string>
ne peuvent pas être facilement convertis en un tableau de chaînes.
800
3
.NET 4+
Solutions détaillées et pré .Net 4.0.
IEnumerable
peut être converti en un tableau de chaînes très facilement avec LINQ (.NET 3.5) :Il est assez facile d'écrire la méthode d'aide équivalente si vous en avez besoin :
Puis l'appeler comme ceci :
Vous pouvez alors appeler
string.Join
. Bien sûr, vous n'êtes pas obligé d'utiliser une méthode d'aide :Ce dernier point est cependant un peu long :)
Il s'agit probablement de la manière la plus simple de procéder, et elle est également très performante - il existe d'autres questions sur les performances exactes, notamment (mais pas uniquement) [celle-ci][1].
Depuis .NET 4.0, il y a plus de surcharges disponibles dans [
string.Join
][2], donc vous pouvez simplement écrire :Beaucoup plus simple :)
[1] : https://stackoverflow.com/questions/219519/whats-the-c-method-syntax-for-converting-an-array-to-a-simple-string [2] : http://msdn.microsoft.com/en-us/library/system.string.join
vous pouvez convertir l'IList en un tableau à l'aide de ToArray, puis exécuter une commande string.join sur le tableau.
Vous pouvez utiliser
.ToArray()
sur lesListes
et lesIEnumerables
, puis utiliserString.Join()
comme vous le souhaitez.