我有一个int[]
:
RXBuffer[0], RXBuffer[1],..., RXBuffer[9]
其中每个值代表一个 ASCII 码,所以 0x31 代表1
, 0x41 代表A
。
如何将其转换为 10 个字符的字符串?
到目前为止,我已经尝试过Data = RxBuffer.ToString();
。但它显示Data
等于System.Int32[]
哪个不是我的数据。
我怎样才能做到这一点?
我有一个int[]
:
RXBuffer[0], RXBuffer[1],..., RXBuffer[9]
其中每个值代表一个 ASCII 码,所以 0x31 代表1
, 0x41 代表A
。
如何将其转换为 10 个字符的字符串?
到目前为止,我已经尝试过Data = RxBuffer.ToString();
。但它显示Data
等于System.Int32[]
哪个不是我的数据。
我怎样才能做到这一点?
假设“int 数组”是 0-9 范围内的值(这是将长度为 10 的“int 数组”转换为 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);
LolCoder 所有你需要的是:
string.Join("",RXBuffer);
============== 或者==================
int[] RXBuffer = {0,1,2,3,4,5,6,7,8,9};
string result = string.Join(",",RXBuffer);