creo que la solución de BrokenGlass es buena, pero personalmente preferiría crear tres métodos diferentes que permiten al usuario recortar sólo el principio, al final o en ambos.
Si estas incidencias se iban a utilizar mucho, las crearía en una clase de ayuda y/o como métodos de extensión; http://msdn.microsoft.com/en-gb/library/vstudio/bb383977.aspx
public string TrimStart(string inputText, string value, StringComparison comparisonType = StringComparison.CurrentCultureIgnoreCase)
{
if (!string.IsNullOrEmpty(value))
{
while (!string.IsNullOrEmpty(inputText) && inputText.StartsWith(value, comparisonType))
{
inputText = inputText.Substring(value.Length - 1);
}
}
return inputText;
}
public string TrimEnd(string inputText, string value, StringComparison comparisonType = StringComparison.CurrentCultureIgnoreCase)
{
if (!string.IsNullOrEmpty(value))
{
while (!string.IsNullOrEmpty(inputText) && inputText.EndsWith(value, comparisonType))
{
inputText = inputText.Substring(0, (inputText.Length - value.Length));
}
}
return inputText;
}
public string Trim(string inputText, string value, StringComparison comparisonType = StringComparison.CurrentCultureIgnoreCase)
{
return TrimStart(TrimEnd(inputText, value, comparisonType), value, comparisonType);
}
Con estos métodos se puede modificar el código para bucle a través de la matriz que contiene las cadenas que ser recortado.
var content = "08:00 AM";
var removeList = new [] { "a", "am", "p", "pm" };
for (var i = 0; i < removeList.length; i++)
{
content = TrimEnd(content, removeList[i]);
}
NOTA: Este código podría optimizarse aún más, pero funcionará como lo hace a una buena velocidad.
¿Cuándo debería eliminarse? Obviamente estás tratando de resolver un dilema del tiempo. Tal vez hay una forma mejor de resolver tu problema por completo –
Cuando el cuadro de texto pierde el foco, el evento 'OnLeave'. – Entity
¿Por qué quieres hacer esto? Use la lista genérica – Shahin