Gibt es eine schnelle Möglichkeit, in C # List<string>
in ein durch Kommas getrenntes zu konvertieren string
?
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: Auf dieser Site gesucht, aber die meisten Lösungen sind für Java oder Python
ToArray()
.string[]
(weil ich nicht benutze.NET 4
)Antworten:
In .NET 4 brauchen Sie den
ToArray()
Anruf nicht -string.Join
ist überlastet, um ihn anzunehmenIEnumerable<T>
oder nurIEnumerable<string>
.Es gibt möglicherweise effizientere Möglichkeiten, dies vor .NET 4 zu tun, aber benötigen Sie diese wirklich? Ist das tatsächlich ein Engpass in Ihrem Code?
Sie können die Liste durchlaufen, die endgültige Größe ermitteln, eine
StringBuilder
genau die richtige Größe zuweisen und dann den Join selbst durchführen. Das würde verhindern, dass das zusätzliche Array aus wenig Grund erstellt wird - aber es würde nicht viel Zeit sparen und es wäre viel mehr Code.quelle
Das Folgende führt zu einer durch Kommas getrennten Liste. Stellen Sie sicher, dass Sie eine using-Anweisung für einfügen
System.Linq
List<string> ls = new List<string>(); ls.Add("one"); ls.Add("two"); string type = ls.Aggregate((x,y) => x + "," + y);
ergibt eins, zwei
Wenn Sie nach dem Komma ein Leerzeichen benötigen, ändern Sie einfach die letzte Zeile in
string type = ls.Aggregate((x,y) => x + ", " + y);
quelle
Um Jon Skeets zu erweitern, antworten Sie auf den folgenden Code
.Net 4
:string myCommaSeperatedString = string.Join(",",ls);
quelle
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()));
quelle
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); }
Konvertieren Sie eine Liste von Zeichenfolgen in durch Kommas getrennte Zeichenfolge C #.
quelle
Auf diese Weise würde ich lieber sehen, ob ich Ihren Code beibehalten habe. Wenn Sie es schaffen, eine schnellere Lösung zu finden, wird dies sehr esoterisch sein, und Sie sollten sie wirklich in einer Methode vergraben, die beschreibt, was sie tut.
(Funktioniert es immer noch ohne ToArray)?
quelle
string.Join
nur aufArray
's vonstrings
. Also ist es notwendig (weil ich nicht benutze.NET 4