【问题标题】:How to convert array to string and vice versa?如何将数组转换为字符串,反之亦然?
【发布时间】:2010-02-07 17:09:15
【问题描述】:

如何转换数组字符串?

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

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

【问题讨论】:

  • 您是否致力于使用数组?如果您使用像 List(Of List(Of String)) 这样的通用集合,可能还有更多可用选项。

标签: vb.net arrays string


【解决方案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

【讨论】:

    【解决方案2】:

    您可以使用 StringBuilder 并使用某种标记遍历数组,例如用分号表示配对,用破折号表示配对中的字符串,即some-some,然后写出@ 987654322@ 即some-some;some-some 到数据库。然后,当您以这种方式从数据库中读取一个字符串时,只需使用标记将元素与字符串本身分开来重新构建数组。

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

    【讨论】:

      猜你喜欢
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多