如何转换数组< - >字符串?
我有一个二维数组,我需要保存到数据库并检索。
Dim myarray(,) as string = {{"some","some"},{"some","some"}}
答案 0 :(得分:1)
虽然XmlSerializer无法序列化多维数组(String(,)
),但它可以序列化锯齿状数组(String()()
)。因此,如果您愿意使用“字符串数组”而不是“二维字符串数组”,则可以使用XmlSerializer。
如何序列化(导入System.Xml.Serialization
和System.IO
)的示例:
Dim myarray()() As String = { _
New String() {"some", "some"}, _
New String() {"some", "some"}}
Dim s As New XmlSerializer(GetType(String()()))
Dim stream As New StringWriter()
s.Serialize(stream, myarray)
Dim myString = stream.ToString()
myString
然后包含:
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ArrayOfString>
<string>some</string>
<string>some</string>
</ArrayOfString>
<ArrayOfString>
<string>some</string>
<string>some</string>
</ArrayOfString>
</ArrayOfArrayOfString>
同样,要反序列化,您可以使用s.Deserialize
。
答案 1 :(得分:0)
您可以使用StringBuilder并使用某种标记迭代数组,例如用分号表示对,用短划线表示对中的字符串即some-some
,然后写出来StringBuilder.ToString()
即some-some;some-some
到数据库。然后,当您以这种方式从数据库中读取一个字符串时,只需使用标记重新构建数组,从字符串本身中分离出元素。
希望这有帮助, 最好的祝福, 汤姆。