Les réponses Regex et LINQ de Vlad couvrent bien la solution. Et ce sont deux bonnes options.
J'ai eu un problème similaire, mais je voulais aussi uniquement supprimer explicitement les lettres, et ne pas supprimer d'espace blanc ou etc., avec cette variante.
Je voulais aussi qu'il soit utilisable comme ci-dessous. Toutes les autres solutions pourraient être conditionnées de la même manière.
public static string StripAlpha(this string self)
{
return new string( self.Where(c => !Char.IsLetter(c)).ToArray() );
}
public static string StripNonNumeric(this string self)
{
// Use Vlad's LINQ or the Regex Example
return new string(self.Where(c=>(Char.IsDigit(c)||c=='.'||c==',')).ToArray()) ; // See Vlad's
}
Cela serait alors utilisé comme:
var newString = someString.StripAlpha();
var newString2 = someString.StripNonNumeric();