Управление функцией разделения для двух массивов - PullRequest
0 голосов
/ 21 августа 2009

У меня был вопрос относительно функции разделения, используемой в Visual Basic. На данный момент я написал функцию, которая вводит строковое значение. Возвращаемое строковое значение, вероятно, будет выглядеть так: «List1; List2; Field1, Field2». Моя цель - использовать функцию split для этой строки, чтобы поместить все списки в один массив и поместить поля в другой массив.

Проблема между тем, где находятся List2 и Field1. Я не хочу, чтобы Field1 был помещен в массив списка. Я думаю, что может быть способ сделать это с помощью анализа, но я не уверен. Вот мой текущий код ниже. Заранее благодарю за любую помощь.

        Dim s As String = GetSetting("ReOrderList", properties.SiteId)
        Dim affectedLists() As String = s.Split(";")
        Dim affectedFields() As String = s.Split(",")

Ответы [ 2 ]

0 голосов
/ 21 августа 2009

Если вы знаете, что списки будут предшествовать полям, вы можете нарезать строку в конце ';' характер:

Dim splitPos As Integer = input.LastIndexOf(";"c)
Dim lists As String = input.Substring(0, splitPos+1)
Dim fields As String = input.Substring(splitPos+1, input.Length - (splitPos+1))

Тогда вы можете работать со списками и полями отдельно.

0 голосов
/ 21 августа 2009

Используйте String.LastIndexOf, чтобы найти, где разделить вашу строку.

Imports System

Class Test
    Shared Sub Main()

        Dim sample As String = "List1;List2; Field1,Field2"

        Dim middle As Int32 = sample.LastIndexOf(";")

        Dim lists As String = sample.Substring(0, middle).Trim()
        Dim fields As String = sample.Substring(middle + 1).Trim()

        Dim affectedLists As String() = lists.Split(";"C)
        Dim affectedFields As String() = fields.Split(","C)

    End Sub
End Class
...