2

我有一组string值,它们enter之间的键作为分隔符并存储在数据库中。现在我必须使用该split函数拆分这些字符串值并将其保存在一个数组中。

//代码

Dim valuesArray as String()= Field.ListOfValues.Split(?)

我怎样才能做到这一点?

4

3 回答 3

3

您所指的“Enter”键可能是回车、换行或两者。以下使用ReadLine所以这应该做你想要的,并且应该考虑行尾字符的差异

StreamReader.ReadLine 方法

从当前流中读取一行字符并将数据作为字符串返回。

行定义为字符序列后跟换行符 ("\n")、回车符 ("\r") 或回车符后紧跟换行符 ("\r\n")。返回的字符串不包含终止的回车符或换行符。

    Dim valuesList As New List(Of String)

    Using sr As New StreamReader(New System.IO.MemoryStream(System.Text.Encoding.ASCII.GetBytes(Field.ListOfValues)))
        Do Until sr.EndOfStream
            valuesList.Add(sr.ReadLine)
        Loop
    End Using

    'If you really want an array convert it to one here:
    Dim valuesArray As String() = valuesList.ToArray
于 2013-07-04T09:04:49.153 回答
1

由于在 Windows 中,行以两个字符的序列终止,因此<CR><LF>您需要String.Split 重载,它在字符串而不是字符上进行拆分:

Dim valuesArray = Field.ListOfValues.Split({vbCrLf}, StringSplitOptions.None)
于 2013-07-04T09:20:36.887 回答
0

尝试这个:

输入键=CChar(vbCrLf)

//代码

Dim valuesArray as String()= Field.ListOfValues.Split(CChar(vbCrLf))
于 2013-07-04T08:52:06.240 回答