2013-07-26 22 views
8

Bardzo prosta metoda rozszerzenie nie kompilacji:string.join - "nie można przekonwertować z IEnumerable ciąg []"

public static string Join(this string text, params string[] stringsToJoin) 
{ 
    return String.Join(", ", stringsToJoin.Where(s => !string.IsNullOrEmpty(s))); 
} 

otrzymuję „nie można przekonwertować z 'System.Collections.Generic.IEnumerable' do„string [ ] ''

Czego mi brakuje?

+4

Czy używasz .NET 3.5 lub wcześniej? [String.Join Method (String, IEnumerable )] (http://msdn.microsoft.com/en-us/library/dd783876.aspx) został dodany w .NET 4.0 – dtb

+1

FYI, jeśli tylko chcesz chcieć więcej Solidne, powinieneś sprawdzić, czy 'stringsToJoin' ma wartość' null', może się zdarzyć. I prawdopodobnie powinieneś użyć gdzieś tam 'text'. ;) –

Odpowiedz

11

Urządzenie overload z String.Join, które akceptuje numer IEnumerable<String>, zostało dodane tylko w .NET 4.0. Wygląda na to, że kompilujesz przeciwko wcześniejszej wersji.

Najprostszym sposobem, aby rozwiązać ten problem i aby był on zgodny z .NET 3.5 będzie po prostu zadzwonić .ToArray():

public static string Join(this string text, params string[] stringsToJoin) 
{ 
    return String.Join(", ", stringsToJoin.Where(s => !string.IsNullOrEmpty(s)) 
              .ToArray()); 
} 
+0

Używam .NET 3.5, więc to wyjaśnia! Dzięki!! –

Powiązane problemy