/ / “Smart” moyen de concaténer des chaînes? - c #, chaîne, concaténation

“Smart” moyen de concaténer des chaînes? - c #, chaîne, concaténation

Je cherche un moyen "intelligent" de concaténerchaînes avec un séparateur. Évidemment, je pourrais coder tout cela moi-même, donc je me demande s’il existe un moyen simple (LINQ ou peut-être une autre méthode que je ne connais pas) de le faire.

Dites que j'ai un ensemble de chaînes (cela peut être un nombre quelconque de chaînes):

string s1 = "a";
string s2 = "b";
string s3 = "c";

Et je veux concaténer les chaînes de telle sorte que le résultat est quelque chose comme a, b, c. C’est assez facile, mais voici le problème: si l’une des chaînes est vide, je ne veux pas de virgule supplémentaire.

Par exemple, si c'est mon cas:

string s1 = "";
string s2 = "b";
string s3 = "c";

Je veux que le résultat soit b, c (ou juste c si les deux s1 et s2 sont vides).

Y a-t-il un moyen simple de faire cela?

Réponses:

1 pour la réponse № 1
var list = new List<string>{"a","b","", null};
var res = string.Join(", ", list.Where(s => !string.IsNullOrEmpty(s)));

2 pour la réponse № 2

Utilisation string.Join (...):

using System;
using System.Linq;
using System.Collections.Generic;

namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
string space = " ";
string a = "One";
string b = "Two";
string c = "Three";
var filteredList = (new List<string> { space, a, b, c }).Where(x => !string.IsNullOrWhiteSpace(x));
string abc = string.Join(", ", filteredList);
Console.WriteLine(abc); //One, Two, Three
Console.ReadKey();
}
}
}

2 pour la réponse № 3
string.Join(",", SOME_STRING_COLLECTION.Where(x => !string.IsNullOrWhiteSpace(x)));