C# 将字节数组转换为uint数值

C# 将字节数组转换为uint数值,c#,byte,valueconverter,uint,C#,Byte,Valueconverter,Uint,假设我有一个字节数组 byte[] byteArr = new byte[] { 1, 2, 3, 4, 5 }; 我想把这个数组转换成uint的正则数字变量,这样结果就会是 uint result = 12345; 到目前为止,我看到的所有示例都是字节,字节我不需要字节,而是数值 谢谢…听起来你想要的是: uint result = 0; foreach (var digit in array) { result = result * 10 + digit; } 或者更有趣的是,

假设我有一个字节数组

byte[] byteArr = new byte[] { 1, 2, 3, 4, 5 };
我想把这个数组转换成uint的正则数字变量,这样结果就会是

uint result = 12345;
到目前为止,我看到的所有示例都是字节,字节我不需要字节,而是数值


谢谢…

听起来你想要的是:

uint result = 0;
foreach (var digit in array)
{
    result = result * 10 + digit;
}
或者更有趣的是,使用LINQ:

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

嘿,约翰,非常重要的问题,为什么这只适用于10之前的数字?如果我将它从字节数组1、2、3、4、5、6、7、8、9转换,它会给我结果123456789,但如果我将它从字节数组1、2、3、4、5、6、7、8、9、10转换,它会给我1234567900,请你知道如何修复它?@Stanislav:你想要它给我什么?10不是一个数字。(这就是为什么你真的需要给出明确的要求。)好吧,你现在明白了。。。现在知道这个错误了,谢谢,只是有点困惑,但是如果你有关于如何解析它的快速答案,如果数字大于9,你可以分享,那就太好了:)一个解决方案需要一个问题。也许我们应该忽略任何超过9的值。也许我们应该抛出一个例外。也许我们应该把它改成一个随机数。没有需求,就不可能提出实现建议。