【问题标题】:Conversion from Int array to string array从 Int 数组转换为字符串数组
【发布时间】:2012-12-27 07:50:03
【问题描述】:

当我将整数数组转换为字符串数组时,我使用 for 循环以更长的方式执行此操作,如下面的示例代码中所述。有这个的简写吗?

SO中现有的问题和答案大约是int[]string(不是string[])。所以他们没有帮助。

虽然我找到了这个 Converting an int array to a String array 答案,但平台是 Java 而不是 C#。同样的方法无法实现!

        int[] intarray =  { 198, 200, 354, 14, 540 };
        Array.Sort(intarray);
        string[] stringarray = { string.Empty, string.Empty, string.Empty, string.Empty, string.Empty};

        for (int i = 0; i < intarray.Length; i++)
        {
            stringarray[i] = intarray[i].ToString();
        }

【问题讨论】:

    标签: c# .net arrays linq linq-to-objects


    【解决方案1】:
    int[] intarray = { 1, 2, 3, 4, 5 };
    string[] result = intarray.Select(x=>x.ToString()).ToArray();
    

    【讨论】:

    • 有效!让我试着理解代码。循环正在这里完成,不是吗?但不是明确的! intarray 中的每个数字都转换为字符串 (x=>x.ToString())。我说的对吗?
    • 你是绝对正确的。循环由Select 方法完成。
    • 请仅在确实有必要时编辑问题并尝试一次制作所有可能的版本。超过一定数量的版本可能会将帖子变成维基!谢谢。
    【解决方案2】:

    试试 Array.ConvertAll

    int[] myInts = { 1, 2, 3, 4, 5 };
    
    string[] result = Array.ConvertAll(myInts, x=>x.ToString());
    

    【讨论】:

    • 不用“使用 System.Data.Linq;”的方法这是一个比实际需要的更大的锤子。
    【解决方案3】:

    给你:

    Linq 版本:

    String.Join(",", new List<int>(array).ConvertAll(i => i.ToString()).ToArray());
    

    简单一:

    string[] stringArray = intArray.Select(i => i.ToString()).ToArray();
    

    【讨论】:

    • String.Join 不是必需的。
    • Select 是 Linq 方法,在 Enumerable 类中定义。 ConvertAll 在 Array 类中定义(甚至在 linq 之前就存在)。
    • 这意味着如果我们使用 CovertAll,则无需声明 using System.Linq;!非常感谢!
    • 这意味着你也可以在.Net 2.0 中使用它..@InfantProgrammer'Aravind'
    • 那是因为 .net3/3.5 只是 .NET 2.0 核心上的附加库。
    猜你喜欢
    • 2020-05-12
    • 2012-03-26
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 2016-01-27
    • 2013-05-31
    • 2021-12-21
    • 2016-08-14
    相关资源
    最近更新 更多