【问题标题】:C# string[] to int[] [duplicate]C# string[] 到 int[] [重复]
【发布时间】:2010-03-03 15:35:28
【问题描述】:

有没有办法将字符串数组转换为 int 数组,就像在 C# 中将字符串解析为 int 一样简单。

int a = int.Parse(”123”);
int[] a = int.Parse(”123,456”.Split(’,’)); // this don't work.

我尝试使用 int 类的扩展方法自己添加此功能,但它们不会变成静态的。

知道如何快速又好地做到这一点吗?

【问题讨论】:

  • LINQ 应该允许您在一行中执行此操作。或 lambda 表达式。
  • 您在询问之前是否尝试过搜索此网站?

标签: c# string arrays parsing int


【解决方案1】:

这个 linq 查询应该这样做:

strArray.Select(s => int.Parse(s)).ToArray()

【讨论】:

    【解决方案2】:
    int[] a = Array.ConvertAll("123,456".Split(','), s => Int32.Parse(s));
    

    应该没问题。如果您不想要异常,可以修改 lambda 以使用 TryParse。

    【讨论】:

    • Array.ConvertAll 肯定比 LINQy ToArray() 需要更少的重新分配。请注意,在这种情况下,您甚至不需要 lambda,您可以将Int32.Parse 作为ConvertAll 的第二个参数传递。
    【解决方案3】:
    int[] a = "123,456".Split(’,’).Select(s => int.Parse(s)).ToArray();
    

    【讨论】:

      【解决方案4】:
      ”123,456”.Split(’,’).Select( s => int.Parse(s) ).ToArray();
      

      【讨论】:

        【解决方案5】:

        使用这个:

        "123,456".Split(',').Select(s => int.Parse(s)).ToArray()
        

        【讨论】:

          【解决方案6】:

          我认为是这样的:

          string[] sArr = { "1", "2", "3", "4" };
          int[] res = sArr.Select(s => int.Parse(s)).ToArray();
          

          【讨论】:

            【解决方案7】:

            这里是扩展方法。这是在字符串上完成的,因为您不能将静态函数添加到字符串。

            public static int[] ToIntArray(this string value)
            {
                return value.Split(',')
                    .Select<string, int>(s => int.Parse(s))
                    .ToArray<int>();
            }
            

            这是你的使用方法

            string testValue = "123, 456,789";
            
            int[] testArray = testValue.ToIntArray();
            

            这假设您要在 ',' 上拆分,如果不是,则必须更改 ToIntArray

            【讨论】:

            • 非常棒,正是我想要的。谢谢!
            猜你喜欢
            • 1970-01-01
            • 2012-05-17
            • 2017-05-10
            • 1970-01-01
            • 2020-10-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-05-06
            相关资源
            最近更新 更多