string.Join - "无法从IEnumerable转换为string []"

Jim*_*alo 8 .net c# linq string

非常简单的扩展方法不编译:

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

我得到"无法从'System.Collections.Generic.IEnumerable'转换为'string []'"

我错过了什么?

p.s*_*w.g 11

过载String.Join,其接受一个IEnumerable<String>只加入.NET 4.0.看来你正在编译早期版本.

修复此问题并使其与.NET 3.5兼容的最简单方法是简单地调用.ToArray():

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