【问题标题】:string.Join - "cannot convert from IEnumerable to string[]"string.Join -“无法从 IEnumerable 转换为 string[]”
【发布时间】:2013-07-26 01:19:58
【问题描述】:

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

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

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

我错过了什么?

【问题讨论】:

  • 您使用的是 .NET 3.5 或更早版本吗? String.Join Method (String, IEnumerable<String>) 已添加到 .NET 4.0
  • 仅供参考,如果您真的想让它更健壮,您应该检查stringsToJoin 是否为null,它可能会发生。你可能应该在某处使用text。 ;)

标签: c# .net string linq


【解决方案1】:

接受IEnumerable&lt;String&gt;String.Joinoverload 仅在.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());
}

【讨论】:

  • 我使用的是 .NET 3.5,这就解释了!谢谢!!
猜你喜欢
  • 2022-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 2010-10-12
相关资源
最近更新 更多