2013-04-26 3 views
0

Я использую Visual Studio.net, Visual Basic, и у меня есть вопрос. Если у меня есть строка, в которой есть много строк, каков наилучший способ получить содержимое определенной строки? например Если строка выглядит следующим образом:Получить содержимое строки в строке

Public Property TestProperty1 As String 
    Get 
     Return _Name 
    End Get 
    Set(value As String) 
     _Name = value 
    End Set 
End Property 

Что является лучшим способом, чтобы получить содержимое строки 2 («Получить»)?

ответ

0

Это зависит от того, что вы подразумеваете под «лучшим».

Самый простой, но не менее эффективным, чтобы разбить строку на строки и получить один из них:

Dim second As String = text.Split(Environment.NewLine)(1) 

Наиболее эффективным было бы обнаружить разрывы строк в строку и получить строку с помощью Substring , но занимает немного больше кода:

Dim breakLen As Integer = Environment.Newline.Length; 
Dim firstBreak As Integer = text.IndexOf(Environment.Newline); 
Dim secondBreak As Integer = text.IndexOf(Environment.NewLine, firstBreak + breakLen) 
Dim second As String = text.Substring(firstBreak + breakLen, secondBreak - firstBreak - breakLen) 

чтобы получить какую-либо строку, а не только второй, вам нужно еще больше кода Переберите строк, пока не дойдете до правой.

1

Проще всего использовать ElementAtOrdefault, так как вам не нужно проверять, имеет ли коллекция столько предметов. Он вернется Nothing тогда:

Dim lines = text.Split({Environment.NewLine}, StringSplitOptions.None) 
Dim secondLine = lines.ElementAtOrDefault(1) ' returns Nothing when there are less than two lines 

Обратите внимание, что индекс равен нулю на основе, поэтому я использовал ElementAtOrDefault(1), чтобы получить вторую строку.

Это является не подход LINQ:

Dim secondLine = If(lines.Length >= 2, lines(1), Nothing) ' returns Nothing when there are less than two lines 
Смежные вопросы