72 votes

Quelle est la méthode opposée de Any <T>

Comment puis-je vérifier avec Linq si une collection ne contient pas d'objet? IE Le contraire de Any<T> .

Je pourrais inverser le résultat avec ! mais par souci de lisibilité, je me suis demandé s'il y avait une meilleure façon de faire cela. Dois-je ajouter l'extension moi-même?

80voto

Thomas Levesque Points 141081

Vous pouvez facilement créer une méthode d'extension None :

 public static bool None<TSource>(this IEnumerable<TSource> source)
{
    return !source.Any();
}

public static bool None<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
{
    return !source.Any(predicate);
}
 

56voto

Grant Winney Points 25981

Bon, c’est un vieux message mais je l’ai trouvé via Google, je vais donc ajouter mes deux sous.

Le contraire de vérifier qu’un (au moins un) enregistrement correspond à un critère donné serait de vérifier que tous les enregistrements ne correspondent pas aux critères.

Vous n'avez pas posté votre exemple complet, mais si vous vouliez le contraire de quelque chose comme:

 var isJohnFound = MyRecords.Any(x => x.FirstName == "John");
 

Vous pouvez utiliser:

 var isJohnNotFound = MyRecords.All(x => x.FirstName != "John");
 

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