我写了这段代码:
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]));
}
既然这是一个数组,我想对整个数据进行一些算法操作,我需要将其转换为字符串。我需要将它附加在单个字符串中。我该怎么办?
答案 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)));