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

时间:2014-02-11 21:11:12

标签: c# string bytearray

我需要帮助将字节数组中的数字转换为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

感谢您的想法:)

3 个答案:

答案 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可能会稍微快一些,但是,除非你知道你有瓶颈,否则我认为这不值得。