MiiiZ
Messages postés2Date d'inscriptionvendredi 29 août 2008StatutMembreDernière intervention 1 septembre 2008
-
29 août 2008 à 17:37
cs_boutemine
Messages postés78Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention21 mars 2018
-
1 sept. 2008 à 15:59
Bonjour tous le monde,
J'ai récupéré un bout de code C# ASP.NET pour comprendre le fonctionnement des webservices et j'ai trouvé une expression que je n'errive pas à comprendre.
La ligne de code en question :
film ListeFilms.FirstOrDefault(f> f.Id == filmIdInt);
Je n'arrive pas à comprendre à quoi correspond =>
J'ai d'abord cru que c'etait un opérateur C# mais je n'ai rien pu trouver sur msdn. Puis j'ai pensé que c'etait un opérateur privé (customisé) mais je n'ai pas pi trouver sa définition dans les sources que j'ai téléchargé.
Est-ce que quelqu'un pourrait-il m'aidre à ce sujet.
cs_boutemine
Messages postés78Date d'inscriptiondimanche 8 mai 2005StatutMembreDernière intervention21 mars 20182 29 août 2008 à 21:42
Se sont les Lambda Expressions, Tu dois lire un peu de bookins sur le sujet des expressions lambda et LINQ,
Pour le code tu peux le lire comme ça:
var film ListeFilms.FirstOrDefault(f> f.Id == filmIdInt);
// film est un Type Anonyme recevant le résultat d'une fonction FirstOrDefault d'une classe LinqToSQL ou d'une collection (ou liste) s'appelant ListeFilms
La fonction reçoit comme parametre le critère de recherche,
f => f.Id == filmIdInt : veut dir
La fonction FirstOrDefault effectue une recherche sur tous les objets (on les appelle f) de la collection ListeFilms tel que :
l'Id de l'objet f de la collection ListeFilms doit être égale au critère filmIdInt (Variable dont la valeur est a indiquer) et retourne le premier objet obtenu ou la valeur par défaut s'il n y a pas de résultat.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 1 sept. 2008 à 00:27
A mon tour :-) (Je l'explique un peu autrement)
Cet opérateur sert à créer une fonction et a exactement la même fonction lorsqu'il est utilisé en mathématique où l'on écrira par exemple
f : x => 3x + 5
Qui se lit, "soit f une fonction qui associe à x, 3x + 5"...
Dans notre cas, "f => f.Id == filmIdInt" peut se lire, "soit une fonction qui associe à f (élément de ListFilms) le booléen f.Id == filmIdInt"
Ensuite, comme on peut le deviner, FirstOrDefault renverra le premier élément f de ListFilms pour lequel "f.Id == filmIdInt" est vérifié, ou bien la valeur par défaut du type f s'il n'en trouve aucun...