代码之家  ›  专栏  ›  技术社区  ›  Gyuri

在C语言中,将整数列表转换为逗号分隔的数字字符串的最简单方法是什么#

  •  3
  • Gyuri  · 技术社区  · 15 年前

    int [] a = {1, 2, 3};
    List<int> l = new List<int>(a);
    

    结果是

    String s = "1,2,3";
    
    8 回复  |  直到 15 年前
        1
  •  2
  •   Rex M    15 年前
    string.Join(",", l.ConvertAll(i => i.ToString()).ToArray());
    

    这是假设您是在.NET3.5W/Linq下编译的。

        2
  •  9
  •   Yuriy Faktorovich    15 年前
    String s = String.Join(",", a.Select(i => i.ToString()).ToArray());
    
        3
  •  6
  •   Marc Gravell    15 年前
    string s = string.Join(",", Array.ConvertAll(a, i => i.ToString()));
    

    (尽管我不确定它是否会编译):

    string s = string.Join(",", a);
    
        4
  •  4
  •   womp    15 年前
      String.Join(",", l);
    
        5
  •  2
  •   Kris Krause    15 年前
    int[] array = {1,2,3};
    
    string delimited = string.Join(",", array);
    
        6
  •  1
  •   Erlend    15 年前
    l.Select(i => i.ToString()).Aggregate((s1, s2) => s1 + "," + s2)
    
        7
  •  0
  •   primodemus    15 年前

    string s = a.Aggregate("", (acc, n) => acc == "" ? n.ToString() : acc + "," + n.ToString());
    
        8
  •  -1
  •   Matt H    15 年前

    
    public static string ToDelimitedString<T>(this IEnumerable<T> items, string delimiter)
    {
        StringBuilder joinedItems = new StringBuilder();
        foreach (T item in items)
        {
            if (joinedItems.Length > 0)
                joinedItems.Append(delimiter);
    
            joinedItems.Append(item);
        }
    
        return joinedItems.ToString();
    }
    

    对于您的列表,它变成: l.ToDelimitedString(",") 为了方便起见,我添加了一个总是使用逗号作为分隔符的重载。