我有一个int
变量(value1
)。
Int value1 =95478;
我想取value1
的每个数字并将它们插入数组(array1
)。像这样,
int[] array1 = { 9, 5, 4, 7, 8 };
不知道如何做到这一点。任何的想法?
答案 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倍,内存效率更高。
只是因为你有一台功能强大的电脑,你不能写坏代码:)