我有int[]
:
RXBuffer[0], RXBuffer[1],..., RXBuffer[9]
其中每个值代表一个ASCII码,因此0x31代表1
,0x41代表A
。
如何将其转换为10个字符的字符串?
到目前为止,我已尝试Data = RxBuffer.ToString();
。但它显示Data
等于System.Int32[]
,这不是我的数据。
我该怎么做?
答案 0 :(得分:4)
假设“int数组”是0-9范围内的值(这是将“int数组”长度10转换为10个字符的字符串的唯一方法) - 有点奇特的方式:
string s = new string(Array.ConvertAll(RXBuffer, x => (char)('0' + x)));
但效率很高(char[]
自动调整大小,字符串转换仅使用数学而不是ToString()
完成。)
编辑:使用修订版清楚这些实际上是ASCII代码,它变得更简单:
string s = new string(Array.ConvertAll(RXBuffer, x => (char)x));
虽然坦率地说,如果值是ASCII(甚至是unicode),最好将其存储为char[]
;这涵盖了相同的范围,占用了一半的空间,而且只是:
string s = new string(RXBuffer);
答案 1 :(得分:1)
LolCoder 您所需要的只是:
string.Join("",RXBuffer);
==============或=================
int[] RXBuffer = {0,1,2,3,4,5,6,7,8,9};
string result = string.Join(",",RXBuffer);