我需要帮助将字节数组中的数字转换为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
感谢您的想法:)
答案 0 :(得分:1)
这个怎么样,
Astr = new String(AByte.Select (b=>(Char)(b+ 48)).ToArray())
答案 1 :(得分:0)
var answer = string.Concat(AByte);
使用的The overload是.NET 4.0(2010)中的新功能。
仅当数组中的所有值都在(byte)0
到(byte)9
的范围内时,此方法才有效。正如评论中指出的那样,将创建九个字符串实例。但是,不使用lambda(匿名函数)或中间数组。
答案 2 :(得分:-1)
一种合理有效的方法是使用带有char数组的String
构造函数。然后,您只需使用Select
将您的值映射到原始字符值,然后调用ToArray()
。
string originalString = new String(AByte.Select(x => (char)(x + '0')).ToArray());
This question and answer表明在循环中使用StringBuilder可能会稍微快一些,但是,除非你知道你有瓶颈,否则我认为这不值得。