Nehmen wir an, Sie haben eine:
List<string> los = new List<string>();
In dieser verrückten funktionalen Welt leben wir in diesen Tagen, welche davon am besten geeignet ist, um eine Zeichenfolge zu erstellen, indem diese verkettet werden:
String.Join(String.Empty, los.ToArray());
StringBuilder builder = new StringBuilder();
los.ForEach(s => builder.Append(s));
string disp = los.Aggregate<string>((a, b) => a + b);
oder Einfacher alter StringBuilder foreach
ODER gibt es einen besseren Weg?
c#
string
performance
functional-programming
maxfridbe
quelle
quelle
Antworten:
Ich würde mit Option A gehen:
Meine Argumentation ist, dass die Join-Methode zu diesem Zweck geschrieben wurde. Wenn Sie sich Reflector ansehen, werden Sie feststellen, dass unsicherer Code verwendet wurde, um ihn wirklich zu optimieren. Die anderen beiden ARBEITEN ebenfalls, aber ich denke, die Join-Funktion wurde für diesen Zweck geschrieben, und ich würde vermuten, die effizienteste. Ich könnte mich aber irren ...
Wie bei @Nuri YILMAZ ohne
.ToArray()
, aber das ist .NET 4+:quelle
Wenn Sie nur die Zeichenfolgen verketten möchten, verwenden Sie string.Concat () anstelle von string.Join ().
quelle
Wenn Sie .net 4.0 verwenden, können Sie einen Sortierer verwenden:
quelle
String.Join () wird recht schnell implementiert und ist wahrscheinlich die beste Wahl, da Sie bereits eine Sammlung der betreffenden Zeichenfolgen haben. Vor allem ruft es: "Ich schließe mich einer Liste von Saiten an!" Immer nett.
quelle
quelle
Meine Stimme ist string.Join
Es müssen keine Lambda-Auswertungen und temporären Funktionen erstellt werden, weniger Funktionsaufrufe, weniger Stack-Pushing und Popping.
quelle