我正在处理一个文件解析器,并且这段代码没有给我我想要的东西。在我走得更远之前,我应该提到我没有写这个程序,我只是编辑源代码来解决这个特定的问题。另外,我可以编译代码,所以这不是问题(你知道下载的程序总是有编译错误)。这是代码。现在如何获取System.String对象的值而不是返回“System.String []”
case EsfValueType.Binary4E: //System.String[]
{
int size = (int)(this.reader.ReadUInt32() - ((uint)this.reader.BaseStream.Position));
var strings = new string[size/4];
for (int i = 0; i < size/4; i++)
strings[i] = this.stringValuesUTF16[this.reader.ReadUInt32()];
esfValue.Value = strings.ToString();
break;
}
,我加入了.ToString();
部分上面的线,但它并没有区别。问题是esfValue.Value以System.String[]
作为值,因此我需要System.String对象的值。如果你能从中了解并告诉我什么是错误的,那将是值得赞赏的。
程序名称为ESF Editor 1.4.8.0。
你说“System.String对象的值” - 哪一个?它们有'size/4'。从根本上说,你正在阅读几个字符串 - 我们不知道你是否想要一个包含所有数据的字符串(以某种方式分开?只是混合在一起?)或者只是其中一个值... –
您可能想要考虑重写使用'StringBuilder' –
@Rowland:在我们知道最终结果是什么之前,我看不到'StringBuilder'如何提供帮助。 –