J'ai rencontré le même problème et j'étais préoccupé par l'impact sur les performances de l'appel de la IsPunctuation pour chaque vérification. J'ai trouvé cet article: http://www.dotnetperls.com/char-ispunctuation.
Accross les lignes: char.IsPunctuation gère également Unicode au-dessus de ASCII. La méthode correspond à un groupe de caractères, y compris les caractères de contrôle. Par définition, cette méthode est lourde et coûteuse. En fin de compte, je n'ai finalement pas opté pour cela en raison de son impact sur les performances de mon processus ETL.
J'ai opté pour l'implémentation personnalisée de dotnetperls.
Et saillir Pour votre information, voici un code déduit des réponses précédentes pour obtenir la liste de tous les caractères de ponctuation (sauf ceux de contrôle):
var punctuationCharacters = new List<char>();
for (int i = char.MinValue; i <= char.MaxValue; i++)
{
var character = Convert.ToChar(i);
if (char.IsPunctuation(character) && !char.IsControl(character))
{
punctuationCharacters.Add(character);
}
}
var commaSeparatedValueOfPunctuationCharacters = string.Join("", punctuationCharacters);
Console.WriteLine(commaSeparatedValueOfPunctuationCharacters);
Cheers, Andrew
langues différentes sont, en fait, différents, et je ne pense pas qu'il y ait une réponse à la question que vous posez. Vous pouvez poser des questions sur des langues spécifiques, ou quelle langue serait la meilleure pour ce genre de manipulation. –