VB.NET разделен на новые строки (преобразование C #) - PullRequest
8 голосов
/ 20 июня 2011

Я пытаюсь преобразовать этот код из C # в VB.NET

string[] lines = theText.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);

Вот что у меня есть, проблема в том, что печатается все содержимое текстового поля в окне сообщения, а не каждая строка.

    Dim Excluded() As String

    Dim arg() As String = {"\r\n", "\n"}

    Excluded = txtExclude.Text.Split(arg, StringSplitOptions.None)

    For i As Integer = 0 To Excluded.GetUpperBound(0)
        MessageBox.Show("'" & Excluded(i) & "'")
    Next

Ответы [ 3 ]

9 голосов
/ 20 июня 2011

Вы не можете использовать обратную косую черту (\) для экранирования символов в VB. Используйте класс ControlChars:

Dim arg() As String = { ControlChars.CrLf, ControlChars.Lf }
8 голосов
/ 20 июня 2011

В случае строковых литералов в VB .Net последовательностей Escape на самом деле не существует.

Есть 2 специальные константы, которые вы можете использовать вместо:

vbCrLf
vbLf

Dim Excluded() As String

Dim arg() As String = {vbCrLf, vbLf}

Excluded = txtExclude.Text.Split(arg, StringSplitOptions.None)

For i As Integer = 0 To Excluded.GetUpperBound(0)
    MessageBox.Show("'" & Excluded(i) & "'")
Next

Должен сделать свое дело (хотя и не проверено).

2 голосов
/ 27 июня 2011

Из онлайн-конвертера :

Ваш код c #:

string[] lines = theText.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);

Преобразовано в VB.NET:

Dim lines As String() = theText.Split(New String() {vbCr & vbLf, vbLf}, StringSplitOptions.None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...