如何将数组转换为字符串,反之亦然?

时间:2010-02-07 17:09:16

标签: vb.net arrays string

如何转换数组< - >字符串?

我有一个二维数组,我需要保存到数据库并检索。

Dim myarray(,) as string = {{"some","some"},{"some","some"}}

2 个答案:

答案 0 :(得分:1)

虽然XmlSerializer无法序列化多维数组(String(,)),但它可以序列化锯齿状数组(String()())。因此,如果您愿意使用“字符串数组”而不是“二维字符串数组”,则可以使用XmlSerializer。

如何序列化(导入System.Xml.SerializationSystem.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到数据库。然后,当您以这种方式从数据库中读取一个字符串时,只需使用标记重新构建数组,从字符串本身中分离出元素。

希望这有帮助, 最好的祝福, 汤姆。