Warum wird ToArray () verwendet, wenn string.Join mit einer Liststring verwendet wird?

8

Ich versuche, List<string> strings mit string.Join(",", strings) zu kombinieren, aber alles, was ich lese, sagt, ich sollte tun:

string.Join(",", strings.ToArray())

Gibt es einen bestimmten Grund, warum ich .ToArray() verwenden / verwenden sollte?

    
strongriley 10.04.2012, 16:38
quelle

4 Antworten

10

string.Join hat erst ab .NET 4 IEnumerable<string> (und tatsächlich eine generische Überladung) akzeptiert. Vermutlich betrachten Sie Code (oder Anweisungen), der mit .NET 3.5 oder früher geschrieben wurde. Vergleichen Sie die Überladungen:

Jon Skeet 10.04.2012, 16:40
quelle
5

Wahrscheinlich, weil alles, was Sie lesen, für eine frühere Version des Frameworks geschrieben wurde. Die Methode string.Join(string, IEnumerable<string>) wurde in Version 4 hinzugefügt.

    
phoog 10.04.2012 16:40
quelle
1
  

Gibt es einen bestimmten Grund, warum ich / ToArray () verwenden soll / sollte?

Sie müssen nicht; Stattdessen sehen Sie sich wahrscheinlich älteren Code an, der vor den aktuellen Überladungen vorhanden war, bei denen Sie nicht ToArray aufrufen müssen. Die neuen Überladungen, die IEnumerable<string> akzeptieren, sind erst seit .NET 4.0 verfügbar.

    
jason 10.04.2012 16:40
quelle
0

Sie müssen .ToArray () in .Net v4 und höher nicht verwenden. In v4 spielt IEnumerable eine große Rolle und viele Erweiterungen wurden hinzugefügt.

Wenn Sie also mit v3.5 oder niedriger kompilieren müssen, müssen Sie .ToArray () verwenden, aber mit 4.0 und höher ist Ihr Code korrekt.

    
Richard Schneider 10.04.2012 16:49
quelle

Tags und Links