【问题标题】:How to convert a list of strings to a single string in Unity (C#) [duplicate]如何在Unity(C#)中将字符串列表转换为单个字符串[重复]
【发布时间】:2016-12-29 03:35:23
【问题描述】:

我是 C# 新手,对这个菜鸟问题表示歉意 - 我正在尝试将字符串列表转换为单个字符串,以便可以将其与 WWWForm 的 POST 函数一起使用。

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

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

【问题讨论】:

标签: c# unity3d


【解决方案1】:

由于您是 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]);
}

但是StringBuilder在串联数小于1000的时候比较好,String.Join()比StringBuilder效率更高。

【讨论】:

    【解决方案2】:

    跟JavaScript的join()基本一样

    String.Join Method

    【讨论】:

    • 谢谢您,这非常有效! 5 分钟后将接受答复。
    【解决方案3】:

    【讨论】:

    • 这应该是公认的答案!非常感谢,我知道有一个oneliner。除了我不得不使用string.Join(",", kidIds),因为它期望string而不是char作为第一个参数。
    【解决方案4】:

    或许你可以试试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];
    }
    

    我想我会帮忙的。

    【讨论】:

      【解决方案5】:

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

       string[] kidIds = { "a#123", "b#123" };
      
              String str = "";
      
              foreach (var kidId in kidIds)
              {
                  str += kidId + ",";
              }
      
              str = str.Remove(str.Length - 1,1); // this line use for remove last comma
      

      谢谢...

      【讨论】:

        猜你喜欢
        • 2016-07-05
        • 2013-10-21
        • 2018-01-27
        • 2011-05-27
        • 2013-06-05
        • 1970-01-01
        • 2016-12-10
        • 2011-08-02
        • 2018-10-12
        相关资源
        最近更新 更多