linq & les expressions lambda. l language in integrated q query

8
Cours techonologies .NET Linq & les expressions lambda

Upload: juliane-dupond

Post on 04-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Linq & les expressions lambda. L Language In Integrated Q Query

Cours techonologies .NET

Linq & les expressions lambda

Page 2: Linq & les expressions lambda. L Language In Integrated Q Query

L •Language

In •Integrated

Q •Query

Qu’est-ce que LINQ

Page 3: Linq & les expressions lambda. L Language In Integrated Q Query

Procéder à des requêtes sur nos objets, comme on le ferait en SQL, au sein même de notre langage de programmation.

Virtuellement, tout ce qu’on sait faire avec SQL peut désormais être réalisé en C#

Linq, à quoi ça sert?

Page 4: Linq & les expressions lambda. L Language In Integrated Q Query

Linq peut s’interfacer avec différentes cibles : ◦ Les collections d’objets implémentant l’interface

IEnumerable : Linq to Object◦ Des données SQL (via Entity Framework) : Linq to

SQL◦ Des flux XML (via les classes Xelement,

XDocument,…) : Linq To XML◦ D’autres encore…

Linq to …

Page 5: Linq & les expressions lambda. L Language In Integrated Q Query

2 syntaxes : ◦ Syntaxe type SQL:

var result = from u in userswhere u.login == ‘‘toto’’ select u.mail;

◦ Syntaxe objet:var result = users.Where(u => u.login == ‘‘toto’’)

.Select(u => u.mail);

Linq, la syntaxe

On appelle cette notation, une expression lambda

Page 6: Linq & les expressions lambda. L Language In Integrated Q Query

Il s’agit de fonctions anonymes pouvant être utilisées comme des variables.

u => u.login == ‘‘toto’’ : ◦ Ici, on définit une fonction prenant en entrée un User et

retournant un booléen◦ Concrètement, pout tout User u, on va tester si on login est égal

à ‘‘toto’’.◦ Les types entrant et sortant sont définis par la méthode Where.

Dans la méthode Select, le paramètre d’entrée est toujours un User mais le paramètre de sortie changera en fonction du champ sélectionné:◦ u => u.mail : Ici, on récupère une string.

Les expressions lambda

Page 7: Linq & les expressions lambda. L Language In Integrated Q Query

Reprenons notre exemple :users.Where(u => u.login == ‘‘toto’’)

.Select(u => u.mail). La syntaxte complète devrait être celle-ci:

users.Where<User>(u => u.login == ‘‘toto’’).Select<User>(u => u.mail).

Les méthodes de Linq sont génériques, elles ont besoin de connaitre le type sur lequel elles travaillent.

Si on peut éviter de le préciser, c’est qu’elle peuvent l’inférer à partir du typage de la collection

Les expressions lambda/Linq

Page 8: Linq & les expressions lambda. L Language In Integrated Q Query

Des questions?

Au travail!

Les expressions lambda/Linq