8

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

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

我必须/应该使用某些原因.ToArray()吗?

4

4 回答 4

10

string.Join从 .NET 4开始才开始接受IEnumerable<string>(实际上是通用重载)。大概您正在查看使用 .NET 3.5 或更早版本编写的代码(或指令)。比较重载:

于 2012-04-10T16:40:29.620 回答
5

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

于 2012-04-10T16:40:25.697 回答
1

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

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

于 2012-04-10T16:40:41.370 回答
0

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

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

于 2012-04-10T16:49:28.307 回答