mun*_*nge 2 vb.net string stringbuilder
在 vb.net(或 C#)中,我不知道如何将 stringbuilder 与字符串进行比较。我已经搜索了很多,但找不到答案。我必须编写自己的例程。没有更好的办法吗?
这不起作用:
Dim s As String = "abc"
Dim sb As New StringBuilder("abc")
If sb.Equals(s) Then
Console.WriteLine(sb.ToString() + " DOES equal " + s)
Else
Console.WriteLine(sb.ToString() + " does NOT equal " + s)
End If
Run Code Online (Sandbox Code Playgroud)
该代码的结果是:abc 不等于 abc
没有某种方法可以在不编写自己的例程的情况下将 stringbuilder 与 string 进行比较吗?很明显我遗漏了一些东西,因为我在任何地方都找不到这个问题。
最简单的方法是获取StringBuilder字符串的内容:
If sb.ToString() = s Then ...
Run Code Online (Sandbox Code Playgroud)
如果您想避免创建该字符串(可能是出于内存使用问题),恐怕您必须编写自己的例程来比较它们。基本上是这样的:
Public Shared Function SbEquals(sb As StringBuilder, s As String) As Boolean
If sb.Length <> s.Length Then Return False
For i As Integer = 0 to s.Length - 1
If sb(i) <> s(i) Return False
Next
Return True
End Function
Run Code Online (Sandbox Code Playgroud)