/ / "Smart" Weg, um Strings zu verketten? - c #, Zeichenkette, Verkettung

"Smart" Weg, um Strings zu verketten? - c #, Zeichenkette, Verkettung

Ich bin auf der Suche nach einem "intelligenten" Weg zur VerkettungZeichenketten mit einem Trennzeichen. Natürlich könnte ich das alles selbst programmieren, also frage ich mich, ob es einen einfachen Weg gibt (LINQ oder vielleicht eine andere Methode, die ich nicht kenne), um das zu tun.

Angenommen, ich habe eine Reihe von Strings (dies kann eine beliebige Anzahl von Strings sein):

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

Und ich möchte die Strings so verketten, dass das Ergebnis ungefähr so ​​aussieht a, b, c. Das ist einfach genug, aber hier ist der Dreh: Wenn eine der Saiten leer ist, möchte ich nicht das zusätzliche Komma.

Zum Beispiel, wenn dies mein Set ist:

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

Ich will das Ergebnis sein b, c (oder nur c wenn beides s1 und s2 sind leer).

Gibt es einen einfachen Weg, dies zu tun?

Antworten:

1 für die Antwort № 1
var list = new List<string>{"a","b","", null};
var res = string.Join(", ", list.Where(s => !string.IsNullOrEmpty(s)));

2 für die Antwort № 2

Benutzen 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 für die Antwort № 3
string.Join(",", SOME_STRING_COLLECTION.Where(x => !string.IsNullOrWhiteSpace(x)));