Escribí el siguiente método para eliminar el espacio de nombres entre corchetes de cadenas.¿Cómo puedo acelerar este método que elimina texto de una cadena?
Me gustaría hacer esto como rápido como sea posible.
¿Hay alguna forma de acelerar el siguiente código?
using System;
namespace TestRemoveFast
{
class Program
{
static void Main(string[] args)
{
string[] tests = {
"{http://company.com/Services/Types}ModifiedAt",
"{http://company.com/Services/Types}CreatedAt"
};
foreach (var test in tests)
{
Console.WriteLine(Clean(test));
}
Console.ReadLine();
}
static string Clean(string line)
{
int pos = line.IndexOf('}');
if (pos > 0)
return line.Substring(pos + 1, line.Length - pos - 1);
else
return line;
}
}
}
¿Cuál de los siguientes es más rápido? line.Substring (pos + 1) vs line.Substring (pos + 1, line.Length - pos - 1). ¡¿Me imagino que has probado antes y elegido el último ?! –
Esto no es lento. Agregar RegEx sería una sobrecarga innecesaria, en mi humilde opinión. –
Puede mover pos + 1 a una variable, y usar eso para el inicio y la resta. Pero estamos hablando de nano segundos;) Pero ahorra haciendo +1 y -1. También por aún nanosegundos. Cambie line.IndexOf ('}') a line.IndexOf ('}', 8, line.Length). Guarda una llamada de método y escanea los bytes iniciales. –