Вы можете заменить строки, которые вы не хотите менять, на то, что декодер не распознает, а затем вернуть их к исходному значению.Вы должны убедиться, что строка, которую вы заменяете, не является тем, что обычно можно найти в строке.
Public Function Convert1(ByVal str As String) As String
str = str.Replace("<", "{lt}")
str = str.Replace(">", "{gt}")
str = HttpUtility.HtmlDecode(str)
str = str.Replace("{lt}", "<")
str = str.Replace("{gt}", ">")
Return str
End Function
Другой вариант - разделить вашу строку и декодировать только ту часть, которую вы хотите.
Public Function Convert2(ByVal str As String) As String
Dim parts() As String = Regex.Split(str, "(<|>)")
For i As Integer = 0 To parts.Length - 1
Console.WriteLine(parts(i))
If parts(i) <> "<" And parts(i) <> ">" Then
parts(i) = HttpUtility.HtmlDecode(parts(i))
End If
Next
Return String.Join("", parts)
End Function
Это всего лишь пример, необходимо выполнить некоторую проверку и рефакторинг.