如何在Unity(C#)中将字符串列表转换为单个字符串

时间:2016-12-29 03:35:23

标签: c# unity3d

我是C#的新手,并为noob问题道歉 - 我试图将字符串列表转换为单个字符串,以便我可以将其与WWWForm的POST功能一起使用。

如果我有一个字符串列表(例如kidIds = ["a#123", "b#123"]),如何轻松将其转换为单个字符串("a#123, b#123")?在Javascript中,我只会执行kidIds.join(","),但我不确定如何在C#中执行此操作。

我尝试过kidIds.ToArray().ToString(),但它并没有真正给我我想要的东西。我可以使用for循环遍历整个列表,但我想知道是否可以使用更简单的一个衬里?

5 个答案:

答案 0 :(得分:4)

由于您是C#的新手,我想告诉您,您试图将字符串列表转换为单个字符串。不,它不是字符串列表,但它是一个字符串数组。字符串列表将像

一样初始化
List<string> SomeName = new List<string>();

将你的名字声明为数组。现在,您可以将字符串数组加入一个字符串,就像Javascript一样

string SomeString = String.Join(",", kidIds);

string.Join方法将多个字符串合并为一个。它接收两个参数:一个数组(或IEnumerable)和一个分隔符字符串。

您还可以使用+从String数组中创建一个字符串,该字符串将连接字符串,如

string smstr = String.Empty;
for(int i=0; i<kidIds.Length; i++)
{
    smstr = smstr + kidIds[i];
    //or
    smstr += kidIds[i]
}

你也可以选择StringBuilder从字符串数组中创建一个字符串,因为StringBuilder.Append()方法比使用+运算符更好

StringBuilder sb = new StringBuilder();
for(int i=0;i<kidIds.Length;i++)
{
    sb.Append(kidIds[i]);
}

但是当串联小于1000时StringBuilder很好,String.Join()甚至比StringBuilder更有效。

答案 1 :(得分:3)

与JavaScript的join()

基本相同

String.Join Method

答案 2 :(得分:3)

答案 3 :(得分:2)

也许你可以试试concat这个函数,比如

String str = "";

str = kidIds[0] + kidIds[1];

str = str.concat(kidIds[0], kidIds[0]);

for(int i=0;i<length;i++)
{
    str += kidIds[i];
}

我想我会帮忙。

答案 4 :(得分:0)

您可以使用以下代码执行此操作...

if ($filesop !== array(null)) // note the triple equals

感谢...