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 4943 fois, 7 pages
 2 | L'exemple de départ
Je vous propose de partir d'un bout de code écrit en C# 2.0 et de progressivement le transformer pour tirer parti de LINQ et des nouveautés de .Net 3.5.

Le code source d'origine déclare une classe Pays qui va être manipulée par la suite par l'application :

class Pays

        {

            private string m_Nom = string.Empty;

 

            public string Nom

            {

                get { return m_Nom; }

                set { m_Nom = value; }

            }

 

            private uint m_Population = 0;

 

            public uint Population

            {

                get { return m_Population; }

                set { m_Population = value; }

            }

 

            private uint m_Superficie = 0;

 

            public uint Superficie

            {

              get { return m_Superficie; }

              set { m_Superficie = value; }

            }

 

            public Pays()

            {

            }

 

            public Pays(string Nom, uint Population, uint Superficie)

            {

                m_Nom = Nom;

                m_Population = Population;

                m_Superficie = Superficie;

            }

 

            public override string ToString()

            {

                return "Nom : " + Nom +

                       " - population : " + Population.ToString() +

                       " - superficie : " + Superficie.ToString();

            }

        }

Ensuite on initialise une liste de pays et on récupère les pays dont la superficie dépasse 1 000 000 de km².

static void DoJobOldWay()

        {

            Pays[] 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) };

 

            List<Pays> GrosPays = new List<Pays>();

            foreach (Pays p in QuelquesPays)

            {

                if (p.Superficie > 1000000)

                    GrosPays.Add(p);

            }

 

            // Operations...

 

            foreach (Pays p in GrosPays)

            {

                Console.WriteLine(p);

            }

        }

Ce code est typique de ce que nous faisons fréquemment pour parcourir une collection et rechercher dans celle-ci les éléments répondant à certains critères.
 
» 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).