2013-02-22 99 views
0

比方说,我有个字节数组转换字节数组为uint数值

byte[] byteArr = new byte[] { 1, 2, 3, 4, 5 }; 

我想这个数组转换得到UINT的常规数值变量,那么结果将是

uint result = 12345; 

所以我见过的所有例子都是用字节来表示的,字节我不需要字节,而是数字值。

谢谢...

回答

2

这听起来像你想要的东西,如:

uint result = 0; 
foreach (var digit in array) 
{ 
    result = result * 10 + digit; 
} 

或者更fancily,使用LINQ:

uint result = array.Aggregate((uint) 0, (curr, digit) => curr * 10 + digit); 
+0

完美!将在3分钟内接受答案:) – inside 2013-02-22 16:53:43

+0

嘿约翰,非常重要的问题,为什么这只适用于数字,直到10?如果我将它从字节数组1,2,3,4,5,6,7,8,9转换它会给我结果123456789,但是如果我将它从字节数组1,2,3,4,5 ,6,7,8,9,10它会给我1234567900请你需要知道如何解决它? – inside 2013-04-11 13:50:28

+1

@Stanislav:那么你想要给它什么? 10不是一个数字。 (这就是为什么你真的需要给出明确的要求。) – 2013-04-11 13:51:28