具有可变填充零的数字的数字到数字的数组

Fly*_*FoX 3 c#

我有一个函数,它获得了number一定数量的函数,digits并且应该返回一个数字的数组的数组(或数组列表)digits.

样本输入1:
12345,6输出:"012345"

输入样本2:123456,6
输出:"123456"

样本输入3:1,8
样本输出:"00000001"

我目前正在这样做

public int[] digitArrayFromNumber(int number, int digits){
    int[] result = number.ToString().PadLeft(digits, '0').ToArray().Select(
        ch => Convert.ToInt32(ch.ToString())
    ).ToArray();
    return result;
}
Run Code Online (Sandbox Code Playgroud)

但这看起来很丑陋,在我看来可能有更好的可读方式来做到这一点.

SLa*_*aks 7

你可以使用数学:

int[] arr = new int[digits];
for (int i = 0; i < digits; i++)
{
    arr[digits - i - 1] = number % 10;
    number /= 10;
}
Run Code Online (Sandbox Code Playgroud)

使用模数运算符检索最后一位数的值,然后除以十来切断最后一位数.