c# Konvertieren Sie `List<string>` in eine durch Kommas getrennte Zeichenfolge




asp.net (5)

static void Main(string[] args)
{
   List<string> listStrings = new List<string>(){ "C#", "Asp.Net", "SQL Server", "PHP", "Angular"};
   string CommaSeparateString = GenerateCommaSeparateStringFromList(listStrings);
   Console.Write(CommaSeparateString);
   Console.ReadKey();
}

private static string GenerateCommaSeparateStringFromList(List<string> listStrings)
{
   return String.Join(",", listStrings);  
}

Konvertiert eine Liste von Zeichenfolgen in kommagetrennte Zeichenfolgen C #.

Gibt es eine schnelle Möglichkeit, List<string> in eine durch Kommas getrennte string in C # zu konvertieren?

Ich mache es so, aber vielleicht gibt es einen schnelleren oder effizienteren Weg?

List<string> ls = new List<string>();
ls.Add("one");
ls.Add("two");
string type = string.Join(",", ls.ToArray());

PS: Gesucht auf dieser Seite, aber die meisten Lösungen sind für Java oder Python


In .NET 4 benötigen Sie nicht den Aufruf ToArray() - string.Join ist überladen , um IEnumerable<T> oder IEnumerable<string> zu akzeptieren.

Es gibt potenziell effizientere Möglichkeiten, dies vor .NET 4 zu tun, aber brauchen Sie sie wirklich? Ist das tatsächlich ein Engpass in Ihrem Code?

Sie könnten über die Liste iterieren, die endgültige Größe berechnen, einen StringBuilder mit genau der richtigen Größe zuweisen und dann selbst mitmachen. Das würde verhindern, dass das zusätzliche Array aus wenig Gründen gebaut wird - aber es würde nicht viel Zeit sparen und es wäre viel mehr Code.


So würde ich lieber sehen, ob ich Ihren Code beibehalten würde. Wenn Sie es schaffen, eine schnellere Lösung zu finden, wird es sehr esoterisch sein, und Sie sollten es wirklich innerhalb einer Methode begraben, die beschreibt, was es tut.

(funktioniert es immer noch ohne ToArray)?


Folge dies:

       List<string> name = new List<string>();   

        name.Add("Latif");

        name.Add("Ram");

        name.Add("Adam");
        string nameOfString = (string.Join(",", name.Select(x => x.ToString()).ToArray()));

Um auf Jon Skeets zu erweitern, beantworten Sie den Code dafür in .Net 4 ist:

string myCommaSeperatedString = string.Join(",",ls);




asp.net