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 行(“Get”)内容的最佳方法是什么?

4

2 回答 2

3

最简单的是使用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
于 2013-04-26T10:25:09.633 回答
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)

要获得任何一行,而不仅仅是第二行,您需要更多的代码来遍历这些行,直到找到正确的行。

于 2013-04-26T10:23:31.660 回答