c# - C# 中将任意数量的字符串组合成单个字符串的正确方法

标签 c# string algorithm data-structures

我快速浏览了 string 类的文档,但没有看到任何将任意数量的字符串组合成单个字符串的好工具。我能在我的程序中想出的最佳程序是

string [] assetUrlPieces = { Server.MapPath("~/assets/"), 
                             "organizationName/",
                             "categoryName/",
                             (Guid.NewGuid().ToString() + "/"),
                             (Path.GetFileNameWithoutExtension(file.FileName) + "/")
                           };

string assetUrl = combinedString(assetUrlPieces);

private string combinedString ( string [] pieces )
{
    string alltogether = "";
    foreach (string thispiece in pieces) alltogether += alltogether + thispiece;
    return alltogether; 
}

但这似乎代码太多,效率太低(来自字符串添加)和笨拙。

最佳答案

如果要在值之间插入分隔符,string.Join是你的 friend 。如果您只是想连接字符串,那么您可以使用 string.Concat :

string assetUrl = string.Concat(assetUrlPieces);

这比使用空分隔符调用 string.Join 稍微简单一些(可能更有效,但可能无关紧要)。

如评论中所述,如果您实际上在代码中进行串联的同一点构建数组,并且您不需要数组做任何其他事情,只需直接使用串联:

string assetUrl = Server.MapPath("~/assets/") +
    "organizationName/" + 
    "categoryName/" +
    Guid.NewGuid() + "/" +
    Path.GetFileNameWithoutExtension(file.FileName) + "/";

... 或者可能使用 string.Format 代替。

关于c# - C# 中将任意数量的字符串组合成单个字符串的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106856/

相关文章:

Python 列表到字符串的转换

algorithm - 最优算法

android - 安卓设备位置图

java - 高效的Java列表合并算法

c# - 如何将 ASP.NET Core 应用程序和 Redis 一起 dockerize?

c# - 在一个 DbContext 中使用多个数据库

c# - 将数组从 C# 传递到 C++ 的问题

c# - 如何找到windows服务exe路径

c# - 如何检查字符串是否包含从 a 到 z 的任何字母?

php - PHP:比较整数/字符串变量和空值