.NET Framework Compter des caractères distincts


Exemple

Si vous avez besoin de compter des caractères distincts, pour les raisons expliquées dans la section Notes , vous ne pouvez pas simplement utiliser la propriété Length parce que c'est la longueur du tableau de System.Char qui ne sont pas des caractères mais des unités de code ni graphèmes). Si, par exemple, vous écrivez simplement du text.Distinct().Count() vous obtiendrez des résultats incorrects, corrigez le code:

int distinctCharactersCount = text.EnumerateCharacters().Count();

Une étape supplémentaire consiste à compter les occurrences de chaque caractère , si les performances ne sont pas un problème, vous pouvez simplement le faire comme ça (dans cet exemple indépendamment du cas):

var frequencies = text.EnumerateCharacters()
    .GroupBy(x => x, StringComparer.CurrentCultureIgnoreCase)
    .Select(x => new { Character = x.Key, Count = x.Count() };