为什么在将String.Join与List 一起使用时使用ToArray()?

我正在尝试使用string.Join(",", strings)组合List strings string.Join(",", strings)但我正在阅读的所有内容都说我应该这样做:

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

是否有某种原因我必须/应该使用.ToArray()

string.Join从.NET 4开始只接受IEnumerable (实际上是generics重载)。大概你正在考虑用.NET 3.5或更早版本编写的代码(或指令)。 比较重载:

  • string.Join in .NET 3.5
  • string.Join in .NET 4

可能是因为您正在阅读的所有内容都是为该框架的早期版本编写的。 版本4中添加了string.Join(string, IEnumerable)方法。

是否有某种原因我必须/应该使用.ToArray()?

你不必; 相反,您可能会查看在当前重载之前存在的旧代码,这些代码不需要您调用ToArray 。 接受IEnumerable的新重载直到.NET 4.0才出现。

您不必在.Net v4及更高版本中使用.ToArray()。 在v4中,IEnumerable起了很大作用,并添加了许多扩展。

因此,如果需要使用v3.5或更低版本进行编译,则需要使用.ToArray(),但使用4.0及更高版本的代码是正确的。