将数组数据附加到字符串中

时间:2016-08-12 08:29:55

标签: c# arrays

我写了这段代码:

int i = 0;
br.BaseStream.Position = i;
armorvalues[i] = br.ReadBytes(0x000E91D4);     

string[] outbyte= new string[0x000E91D4];
for (int j=0; j < 0x000E91D4; j++)
{
    outbyte[j] = Convert.ToString(String.Format("{0:X2}", armorvalues[0][j]));
}

既然这是一个数组,我想对整个数据进行一些算法操作,我需要将其转换为字符串。我需要将它附加在单个字符串中。我该怎么办?

2 个答案:

答案 0 :(得分:0)

查看StringBuilder班级

StringBuilder sb = new StringBuilder(0x000E91D4*2); // length * 2 since every byte is going to be represented by 2 chars
for (int j=0; j < 0x000E91D4; j++)
{
    sb.Append(Convert.ToString(String.Format("{0:X2}", armorvalues[0][j])));
}
string yourString = sb.ToString();

编辑: 我不知道string.Join重载需要IEnumerable,它更优雅,使用Gilad Green的解决方案,或者如果你不希望值被空格(“”)分隔,只需要

string output = string.Concat(armorvalues[0].Select(item => String.Format("{0:X2}", item)));

答案 1 :(得分:0)

不确定你为什么要这样做,也许如果你更好地解释你的需要那么它会很好。但是对于你的问题:

您可以使用string.Join

var strValue = string.Join(" ", outbyte);

而不是在看完之后你也可以这样做:

var strValue = string.Join(" ", armorvalues[0].Select(item => String.Format("{0:X2}", item)));