Либо все должно быть хорошо с точки зрения функциональности.Первый не эффективен как есть.Вызов ToArray
выполняет намного больше работы, чем необходимо (если вы используете .NET 4.0, в любом случае он не нужен), а вызов ToCharArray
не нужен.По сути, символы во входной строке повторяются намного больше, чем нужно, и дополнительные массивы выделяются избыточно.
Я бы не сказал, что это особенно имеет значение ;но вы спросили об эффективности, вот почему я упоминаю об этом.
Второй вариант мне кажется подходящим.Обратите внимание, что если вы хотите пойти по однострочному маршруту, вы все равно можете сделать это с StringBuilder
, и я думаю, что по-прежнему будет иметь что-то более лаконичное, чем версия LINQ (хотя я не насчитал символов),Мне даже неясно, превосходит ли это даже более прямой вариант String.Replace
:
' StringBuilder.Replace version:
Return New StringBuilder(text).Replace("<", "").Replace(">", "").ToString()
' String.Replace version:
Return text.Replace("<", "").Replace(">", "")