7
votes

LINQ C # Sélection des caractères de la chaîne

J'ai une chaîne que je convertitais en une matrice de caractère, puis j'utilise LINQ pour sélectionner les différents caractères à l'intérieur du tableau de caractères, puis commandez-les en descendant, mais n'attrape que les caractères de ponctuation, etc.

Voici le code: xxx

et le message d'erreur que je reçois:

  • erreur CS1502: la meilleure correspondance de méthode surchargée pour `Char.Sletter (Char) 'a des arguments non valides (CS1502)

  • erreur CS1503: argument '# 1' ne peut pas convertir 'system.linq.igrouping ' expression à tapez `char '(CS1503)

    Des idées? Merci:)


1 commentaires

Char.IsLetter (e.Key) Je viens de recevoir ce travail de déconner dans VSCode gist.github.com/lewiscowles1986/...


4 Réponses :


2
votes

dans votre clause où, E code> dans ce contexte est votre regroupement, pas le personnage. Si vous souhaitez vérifier si le personnage est une lettre, vous devez tester votre clé.

//...
.Where(g => Char.IsLetter(g.Key))


0 commentaires

9
votes

Essayez ceci:

var inputString = "The black, and, white cat"; 
var txtEntitites = inputString.GroupBy(c => c)
                              .OrderByDescending(g => g.Count())
                              .Select(t=> t.Key)
                              .Where(e => Char.IsLetter(e));


2 commentaires

Merci :) et merci de ne pas me plaindre ou me marquer pour avoir posé une question ha!


Votre question était courte, concise et donnait de bons détails sur le message d'erreur afin que je lui ai donné un vote sur :-)



1
votes

Je pense que c'est ce que vous recherchez

string inputString = "The black, and, white cat";
var something = inputString.ToCharArray();
var txtEntitites = something.Where(e => Char.IsLetter(e))
                   .GroupBy(c => c)
                   .OrderByDescending(g => g.Count()).Select(t=> t.Key);


0 commentaires

1
votes
List<char> charArray = (
      from c in inputString
      where c >= 'A' && c <= 'z'
      orderby c
      select c
   ).Distinct()
   .ToList();

0 commentaires