使用StringBuilder进行非常少的连接

时间:2014-12-03 16:44:01

标签: vb.net

每个人(或所有被教过的人)都知道StringBuilder是动态构建包含多个连接的字符串的方法。

由于(我必须承认)大多是懒惰,如果我做一些连接(比如说,大约3),我将使用一个普通的老字符串。我想我无法处理那个额外的实例化和toString。

在这种情况下使用普通的老字符串做差吗?在此上下文中使用StringBuilder与String之间是否有额外的开销,或者StringBuilder是否仍然更有效?

具体例子:

    Dim PractitionerName As String = CurrentApplicant.FirstName
    If CurrentApplicant.Demographics.MiddleInitial <> "" Then
        PractitionerName &= " " & CurrentApplicant.Demographics.MiddleInitial
    End If
    If CurrentApplicant.LastName <> "" Then
        PractitionerName &= " " & CurrentApplicant.LastName
    End If

    Dim Endorsements As String = ""
    For Each Endorsement As IowaLicensure.LicenseEndorsement In PractitionerLicense.LicenseEndorsements
        Endorsements &= Endorsement.EndorsementType.Description & VbCrLf
    Next

1 个答案:

答案 0 :(得分:2)

魔鬼在细节中,但在某些情况下你可以使用这样的东西:

If bePolite Then
    Return String.Format("{0} {1} {2} {3}", Title, FirstN, MiddleI, LastN)
    ' "Doctor Jonas K Salk"
Else
    Return String.Format("{0}, {1}", LastN, FirstN) 
    ' "Jones, Sally"
End If

For Each场景比较棘手,但有时可以从其中一个底层类开始。在大多数情况下,除非有更大的循环迭代,否则可能不会保存太多。