Kader Yildirim
LINQ à 360 degré, Partie 1
Cet article présente les principales fonctionnalités apportées par LINQ
Par Kader Yildirim publié le 01/06/2007 à 00:22, lu 4793 fois, 7 pages
 3 | Utilisation de LINQ
Si vous regardez les assemblies du framework .Net 3.5 vous verrez que LINQ fait parti de l'assembly System.Core.dll ce qui montre combien cette technologie est au coeur des nouvelles versions de .Net.

Si on porte le code précédant pour tirer profit de LINQ nous avons le résultat suivant :

static void DoJobNewWay()

        {

            var QuelquesPays = new Pays[]{

                            new Pays("France",       60000000,      550000),

                            new Pays("Turquie",      70000000,      750000),

                            new Pays("Chine",      1300000000,    9600000),

                            new Pays("USA",        300000000,    9000000),

                            new Pays("Maroc",        31000000,      450000),

                            new Pays("Suisse",        7500000,       40000) };

 

            var GrosPays = from p in QuelquesPays

                           where p.Superficie > 1000000

                           select p;

 

            // Operations...

 

            foreach (var p in GrosPays)

            {

                Console.WriteLine(p);

            }

        }

Vous noterez tout d'abord l'abondance du mot clé var. Ce dernier permet de déclarer une variable qui va prendre le type de la donnée à droite de l'opérateur d'affectation.

Par exemple :

var i = 18;

Equivaut à :

int i = 18;

Vous pouvez vérifier ce point en regardant le code IL généré qui est exactement le même dans les deux cas :

  IL_0001:  ldc.i4.s   18


L'autre différence notable est la manière de parcourir la collection qui ne fait plus appels aux boucles traditionnelles (for, foreach, while...) mais utilise un langage de requêtage proche du SQL : LINQ.

Ce type de parcours n'est possible que si les classes cibles implémentent directement ou non l'interface IEnumerable<T> ou bien IQueryable<T>.

Vous aurez aussi remarqué au passage le fameux SQL à l'envers d'Eric Mittelette ; c'est-à-dire que l'opérateur SELECT est à la fin de requête contrairement à ce qui fait avec SQL. En effet avec LINQ il faut tout d'abord préciser le jeu de données que l'on souhaite manipuler et ensuite on précise les opérations à effectuer sur cette source.
 
» Démarrer une discussion
 
Discussion démarée par houcine_kadiri le 05/06/2007 à 11:50, 2 commentaire(s).
Discussion démarée par Laurent Kempé le 01/06/2007 à 14:13, 1 commentaire(s).