3 votes

Erreur lors de l'utilisation de .Contains pour vérifier si une chaîne contient un caractère

Je suis en train d'essayer de trouver si une chaîne contient un caractère. J'ai essayé ce qui suit où ViewBag.Options est une chaîne :

@ViewBag.Options.Contains('q')

mais cela me donne une erreur disant :

La meilleure correspondance de méthode surchargée pour 'string.Contains(string)' a quelques arguments non valides.

11voto

Jon Skeet Points 692016

Et c'est écrit : string.Contains n'a pas de surcharge prenant juste un caractère.

Options:

  • Utiliser @ViewBag.Options.Contains("q")
  • Utiliser @ViewBag.Options.IndexOf('q') != -1
  • Utiliser une approche LINQ plus compliquée (par exemple, Any) - réalisable, mais ce n'est pas nécessaire ici. (Je suis un fan de LINQ lorsque approprié mais je ne pense pas que ce soit la bonne approche ici; je n'introduirais pas d'expressions lambda dans mon code juste pour le plaisir)
  • Utiliser une approche d'expression régulière plus compliquée - encore une fois, ce n'est pas nécessaire.

1voto

Nikhil Agrawal Points 19567

Utilisez n'importe lequel d'entre eux

  • @ViewBag.Options.Contains("q");
  • @ViewBag.Options.Any(x => x == 'q');

Si vous insistez

  • @ViewBag.Options.Contains('q'.ToString());

L'erreur est explicite. Les paramètres de .Contains prennent une chaîne de caractères et aucune surcharge de cette méthode ne prend un caractère.

1voto

jussinen Points 433

Utiliser des guillemets simples en c# indique un caractère.

Essayer avec des guillemets doubles:

@ViewBag.Options.Contains("q");

1voto

Kapil Khandelwal Points 9909

Utilisez ceci :

@ViewBag.Options.Contains("q")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X