代码之家  ›  专栏  ›  技术社区  ›  Ben Aston

将数组转换为内联字符串

  •  2
  • Ben Aston  · 技术社区  · 14 年前

    将整数数组转换为内联元素的字符串最简单的方法是什么?我在想一个匿名函数来执行转换。

    var array = new int[] { 1, 2 }
    var s = string.Format("{0}", 
                          new [] 
                          { /*inline transform array into the string "1, 2"*/ });
    
    4 回复  |  直到 14 年前
        1
  •  7
  •   Jon Skeet    14 年前

    使用 string.Join IEnumerable<T> . 因此,根据您的版本:

    string s = string.Join(", ",
        Array.ConvertAll(delegate(int x) { return x.ToString(); });
    

    .NET 2.0或3.0/C#3:

    string s = string.Join(", ", Array.ConvertAll(x => x.ToString());
    

    string s = string.Join(", ", array.Select(x => x.ToString()).ToArray());
    

    (如果愿意,也可以使用与.NET 2.0一起使用的版本)。

    .NET 4:

    string s = string.Join(", ", array);
    

    (今天之前我都没见过!)

        2
  •  3
  •   driis    14 年前

    使用字符串.Join,对于.NET 4.0:

    var s = String.Join(", ",array);
    

    这是因为String.Join现在有一个重载,它接受IEnumerable<T>,

    对于3.5,可以使用

    var s = String.Join(", ", array.Select(n => n.ToString()).ToArray());
    

        3
  •  1
  •   Nick Craver    14 年前

    如果您在.Net 4上:

    var array = new int[] { 1, 2 };
    var s = String.Join(", ", array);
    

    String.Join<T>(string, IEnumerable<T>) 已添加:)

        4
  •  0
  •   Ben Aston    14 年前

    ReSharper给了我这样的信息:

        public static string EnumerateToString(this int[] a, string separator)
        {
            return a.Aggregate("", (current, i) => current + i.ToString(separator));
        }