2012-04-04 9 views
1

Ich habe eine Methode mit dieser Signatur:String.Join nicht akzeptiert IEnumerable <string>

IEnumerable<string> GetCombinations(string s, int length) 

Und ich versuche es so mit string.Join zu verwenden:

var combinations = GetCombinations(text, 2); 
string result = string.Join(", ", combinations); 

Aber ich bekomme die folgender Compiler-Fehler:

cannot convert from 'System.Collections.Generic.IEnumerable<string>' to 'string[]'

Kann nicht string.Join eine IEnumerable<string> nehmen?

+0

@MitchWheat Wie würde das alles lösen? Es würde die Sache noch schlimmer machen ;-) String.Join erwartet als zweites Argument eine Zeichenkette - ** Array **, keine Zeichenkette; * genau * was der Compiler dem Benutzer mit diesem spezifischen Fehler sagt. – RobIII

+0

stetig an. Ich wollte ToArray() sagen (deshalb habe ich den Kommentar schnell gelöscht) –

Antwort

5

Aufruf .ToArray darauf?

String.Join(", ",combinations.ToArray()); 

EDIT

Dan J's answer siehe auch: Da .Net 4 eine Überlastung von String.Join hat eine IEnumerable akzeptieren.

+0

Excellent! .it's Arbeit.Sie ​​haben meinen Tag gerettet .. –

7

Welche Version von .NET Framework verwenden Sie? Die overload of String.Join, die IEnumerable anstelle eines Arrays akzeptiert, wurde in .NET 4 hinzugefügt.

Verwandte Themen