从整数值访问数字

时间:2014-07-21 08:07:38

标签: c# arrays

我有一个int变量(value1)。

 Int value1 =95478;

我想取value1的每个数字并将它们插入数组(array1)。像这样,

int[] array1 = { 9, 5, 4, 7, 8 };

不知道如何做到这一点。任何的想法?

3 个答案:

答案 0 :(得分:3)

int[] array1 =  95478.ToString()
                .Select(x => int.Parse(x.ToString()))
                .ToArray();

答案 1 :(得分:3)

试试这个

    Int value1 =95478;
    List<int> listInts = new List<int>();
    while(value1 > 0)
    {
        listInts.Add(value1 % 10);
        value1 = value1 / 10;
    }
    listInts.Reverse();
    var result= listInts .ToArray();

这不使用字符串

答案 2 :(得分:1)

我能提出的最佳解决方案:

public static class Extensions {
  public static int[] SplitByDigits(this int value) {
    value = Math.Abs(value); // undefined behaviour for negative values, lets just skip them
    // Initialize array of correct length
    var intArr = new int[(int)Math.Log10(value) + 1];
    for (int p = intArr.Length - 1; p >= 0; p--)
    {
      // Fill the array backwards with "last" digit
      intArr[p] = value % 10;
      // Go to "next" digit
      value /= 10;
    }
    return intArr;
  }
}

使用List<int>和反转的速度大约是使用字符串的速度的两倍,比使用字符串快大约10倍,内存效率更高。

只是因为你有一台功能强大的电脑,你不能写坏代码:)