【问题标题】:c# one liner for .ToString() across entire arrayc# 在整个数组中为 .ToString() 提供一个衬垫
【发布时间】:2009-05-14 03:21:25
【问题描述】:

我觉得问这个问题很愚蠢,但是必须有一个代码与下面的 c# 代码等效或几乎等效...所以你能告诉我它是什么吗?

    public static string[] ToStringArray(int[] i)
    {
        if (i==null) return null;
        string[] result = new string[i.Length];
        for (int n= 0; n< result.Length; n++)
            result[n] = i[n].ToString();
        return result;
    }

【问题讨论】:

    标签: c# shortcut


    【解决方案1】:

    扩展方法怎么样?

    public static string[] ToStringArray<T>(this IEnumerable<T> items)
    {
        return items.Select(i => i.ToString()).ToArray();
    }
    

    【讨论】:

    • 扩展方法可以,但为什么不使用 .Net 框架的“.Join”函数呢?
    • 查看我的 cmets 以了解您的答案。 String.Join 将字符串数组转换为单个字符串。最初的问题需要一种将整数数组转换为字符串数组的方法。
    • 我错过了整个“int”部分:)
    • 我认为从长远来看,扩展方法在代码中可能看起来会更好一些。
    • egads,它甚至可以在监视窗口中工作:(new int[] { 1,2,3,4,5}).ToStringArray()
    【解决方案2】:

    使用 LINQ:

    int[] ints = { 1, 2, 3 };
    
    string[] strings = ints.Select(i => i.ToString()).ToArray();
    

    【讨论】:

      【解决方案3】:

      使用 LINQ:

      (from x in i select x.ToString()).ToArray()
      

      【讨论】:

        【解决方案4】:
        int[] x = new int[] {1,2,3}; string[] y = Array.ConvertAll(x, intArg => intArg.ToString());

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-08
          • 2011-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-29
          相关资源
          最近更新 更多