2009-08-21 3 views
0

У меня возник вопрос о функции split, используемой в 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(",") 
+0

«Возвращаемое значение строки, вероятно, будет выглядеть следующим образом:« List1; List2; Field1, Field2" .» Вау, это жестоко. У вас есть доступ к этому коду? Возможно ли, чтобы вы вернули более последовательную строку или функцию, которая генерирует строку, возвратит вам два массива? – Juliet

ответ

0

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

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

Используйте 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 
+0

Спасибо большое всем. Я не мог поверить, как быстро я получил ответ. – 2009-08-21 15:06:47

Смежные вопросы