我快速浏览了 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/