繁体   English   中英

将字节数组转换为数字字符串[c#]

[英]Convert Byte Array to string of numbers [c#]

我需要帮助将数字从字节数组转换为C#中的字符串。

有我的代码:

string Astr = "123456789";
byte[] AByte = Astr.Select(c => (byte)(c - '0')).ToArray(); 
Astr = AByte.ToString(); // This is problem - I need convert numbers back to string

谢谢您的想法:)

那这个呢,

Astr = new String(AByte.Select (b=>(Char)(b+ 48)).ToArray())
var answer = string.Concat(AByte);

使用的重载是.NET 4.0(2010)中的新增功能。

仅当数组中的所有值都在(byte)0(byte)9的范围内时,此方法才有效。 正如评论中指出的那样,将创建九个字符串实例。 但是,不使用lambda(匿名函数)或中间数组。

一种合理有效的方法是使用采用char数组的String构造函数。 然后,您只需要使用Select即可将您的值映射到原始char值,然后调用ToArray()

string originalString = new String(AByte.Select(x => (char)(x + '0')).ToArray());

这个问题和答案表明,在循环中使用StringBuilder可能会稍快一些,但是,除非您知道存在瓶颈,否则我认为这样做不值得。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM