在C#中将int数组转换为字符串

时间:2012-07-31 06:47:32

标签: c#

我有int[]

RXBuffer[0], RXBuffer[1],..., RXBuffer[9]

其中每个值代表一个ASCII码,因此0x31代表1,0x41代表A

如何将其转换为10个字符的字符串?

到目前为止,我已尝试Data = RxBuffer.ToString();。但它显示Data等于System.Int32[],这不是我的数据。

我该怎么做?

2 个答案:

答案 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);