c# - string.Join 需要采用数组而不是 IEnumerable 的原因是什么?

标签 c#

正如标题所说:为什么string.Join 需要采用数组而不是IEnumerable?这让我很烦,因为当我需要从 LINQ 表达式的结果创建一个连接的字符串时,我必须添加一个 .ToArray() 。

我的经验告诉我,我在这里遗漏了一些明显的东西。

最佳答案

升级到 .NET 4.0 并使用 overload接受 IEnumerable<string> .否则,只能接受这是一个长期悬而未决的问题,直到 .NET 4.0 才得到解决。您也可以通过创建自己的扩展方法来解决这个问题!

public static class StringEnumerableExtensions {
    public static string Join(this IEnumerable<string> strings, string separator) {
        return String.Join(separator, strings.ToArray());
    }
}

用法:

IEnumerable<string> strings;
Console.WriteLine(strings.Join(", "));

关于c# - string.Join 需要采用数组而不是 IEnumerable 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3968869/

相关文章:

c# - 在 C# 中连接字符串和数字

c# - 为什么我必须转换为类型参数而不能使用受约束的类型?

c# - 无法在 .NET 桌面应用程序中检索访问 token

c# - Visual Studio 2010 在崩溃时清空文件

c# - 使用WebClient下载时出现操作超时错误

c# - 如何在 C# 中使用 Microsoft.Azure.Management.Automation AutomationClient 启动 Azure runbook/webhook?

c# - 如何使用 Entity Framework 按日期而不是随时间分组

c# - 为什么泛型方法不能将具体(派生)类转换为其父类

c# - 将 Xamarin.forms 应用程序上的目标框架从 Android 8.1 更改为 Android 9(对于 Xamarin.Essentials)

c# - ".NET Framework 3.5 Client Profile"先决条件在 ClickOnce 部署中不可用