Mit " supercooler LINQ-Methode " könnten Sie darüber sprechen, wie LINQ die funktionale Programmierung durch die Verwendung von Erweiterungsmethoden viel angenehmer macht. Ich meine, der syntaktische Zucker, mit dem Funktionen visuell linear (nacheinander) verkettet werden können, anstatt (ineinander) zu verschachteln. Zum Beispiel:
int totalEven = Enumerable.Sum(Enumerable.Where(myInts, i => i % 2 == 0));
kann so geschrieben werden:
int totalEven = myInts.Where(i => i % 2 == 0).Sum();
Sie können sehen, wie das zweite Beispiel leichter zu lesen ist. Sie können auch sehen, wie mehr Funktionen mit weniger Einrückungsproblemen oder dem Lispy hinzugefügt werden können Abschlussparens am Ende des Ausdrucks erscheinen.
Viele der anderen Antworten besagen, dass dies der String.Join
richtige Weg ist, da es am schnellsten oder am einfachsten zu lesen ist. Wenn Sie jedoch meine Interpretation von " supercooler LINQ-Methode " verwenden, lautet die Antwort, sie zu verwenden String.Join
, sie jedoch in eine Erweiterungsmethode im LINQ-Stil einzuschließen, mit der Sie Ihre Funktionen auf visuell ansprechende Weise verketten können. Wenn Sie also schreiben möchten, müssen sa.Concatenate(", ")
Sie nur Folgendes erstellen:
public static class EnumerableStringExtensions
{
public static string Concatenate(this IEnumerable<string> strings, string separator)
{
return String.Join(separator, strings);
}
}
Dies liefert Code, der genauso performant ist wie der direkte Aufruf (zumindest in Bezug auf die Komplexität des Algorithmus) und in einigen Fällen den Code (je nach Kontext) besser lesbar macht, insbesondere wenn anderer Code im Block den verketteten Funktionsstil verwendet .