将整数转换为数字数组

时间:2014-10-08 19:19:47

标签: c#

我想知道C#中是否有一种方法可以将整数转换为数字数组,这样我就可以对每个数字执行(数学)运算。

示例:我需要用户输入一个整数,123456 然后程序创建两个包含三个元素{1,2,3}{4,5,6}

的数组

3 个答案:

答案 0 :(得分:11)

脱离我的头顶:

int i = 123;
var digits = i.ToString().Select(t=>int.Parse(t.ToString())).ToArray();

答案 1 :(得分:4)

您可以创建此类数组(或List)以避免字符串操作,如下所示:

int x = 123;
List<int> digits = new List<int>();
while(x > 0)
{
    int digit;
    x = Math.DivRem(x, 10, out digit);
    digits.Add(digit);
}
digits.Reverse();

不使用ListList.Reverse

的备选方案
int x = 456;
int[] digits = new int[1 + (int)Math.Log10(x)];
for (int i = digits.Length - 1; i >= 0; i--)
{
    int digit;
    x = Math.DivRem(x, 10, out digit);
    digits[i] = digit;
}

使用ToString的另一种方式:

int x = 123;
int[] digits = Array.ConvertAll(x.ToString("0").ToCharArray(), ch => ch - '0');

答案 2 :(得分:0)

您可以使用此功能而不是转换为字符串:

var digits = new List<int>();
var integer = 123456;
while (integer > 0)
{
  digits.Add(integer % 10);
  integer /= 10;
}

digits.Reverse();