Dan*_*ang 1 c# unity-game-engine
我是 C# 的新手,并且为 noob 问题道歉 - 我正在尝试将字符串列表转换为单个字符串,以便我可以将它与 WWWForm 的 POST 函数一起使用。
如果我有一个字符串列表(例如kidIds = ["a#123", "b#123"]
),我如何轻松地将其转换为单个字符串("a#123, b#123"
)?在 Javascript 中,我会简单地做kidIds.join(",")
,但我不确定如何在 C# 中做到这一点。
我试着做kidIds.ToArray().ToString()
,但它并没有真正给我我想要的。我可以使用 for 循环遍历整个列表,但我想知道是否有一个更简单的衬里我可以使用?
由于您是 C# 新手,我想告诉您,您试图将字符串列表转换为单个字符串。不,它不是字符串列表,而是字符串数组。字符串列表将初始化为
List<string> SomeName = new List<string>();
Run Code Online (Sandbox Code Playgroud)
当你的一个被声明为数组时。现在您可以像 Javascript 一样将字符串数组加入一个字符串中
string SomeString = String.Join(",", kidIds);
Run Code Online (Sandbox Code Playgroud)
该string.Join
方法将许多字符串合二为一。它接收两个参数:一个数组(或 IEnumerable)和一个分隔符字符串。
您还可以从 String 数组中创建一个字符串,使用+
它来连接字符串,例如
string smstr = String.Empty;
for(int i=0; i<kidIds.Length; i++)
{
smstr = smstr + kidIds[i];
//or
smstr += kidIds[i]
}
Run Code Online (Sandbox Code Playgroud)
您还可以选择 StringBuilder 从字符串数组中创建一个字符串,因为 StringBuilder.Append() 方法比使用 + 运算符好得多
StringBuilder sb = new StringBuilder();
for(int i=0;i<kidIds.Length;i++)
{
sb.Append(kidIds[i]);
}
Run Code Online (Sandbox Code Playgroud)
但是当连接数小于 1000 时 StringBuilder 很好,String.Join() 甚至比 StringBuilder 更有效。