LINQ Language Integrated Query en C

  • View
    235

  • Download
    37

Embed Size (px)

Text of LINQ Language Integrated Query en C

  • Rfr

    ence

    Rseauxet tlcom

    Programmation

    Gnie logiciel

    Scurit

    Systme dexploitation

    LINQLanguage Integrated Query en C# 2008

    Joseph C. Rattz

  • LINQLanguage Integrated Queryen C# 2008Joseph C. Rattz, Jr.

    Traduction : Michel Martin, MVP

    Relecture technique : Mitsuru Furuta, Microsoft France

    Pierrick Gourlain, MVP Client Application

    Matthieu Mezil, MVP C#

    Linq FM Prl Page I Mercredi, 18. fvrier 2009 8:15 08

  • Pearson Education France a apport le plus grand soin la ralisation de ce livre afin de vous four-nir une information complte et fiable. Cependant, Pearson Education France nassume de respon-sabilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tiercespersonnes qui pourraient rsulter de cette utilisation.

    Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour illustrer les descriptionsthoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle.

    Pearson Education France ne pourra en aucun cas tre tenu pour responsable des prjudicesou dommages de quelque nature que ce soit pouvant rsulter de lutilisation de ces exemples ouprogrammes.

    Tous les noms de produits ou marques cits dans ce livre sont des marques dposes par leurspropritaires respectifs.

    Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a) du code de laproprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France ou, le cas chant, sansle respect des modalits prvues larticle L. 122-10 dudit code.

    No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, includingphotocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

    Publi par Pearson Education France47 bis, rue des Vinaigriers75010 PARISTl. : 01 72 74 90 00www.pearson.fr

    Mise en pages : TyPAO

    Copyright 2009 Pearson Education FranceTous droits rservs

    Titre original : Pro LINQ Language Integrated Query in C# 2008

    Traduit de lamricain par Michel Martin

    Relecture technique : Mitsuru Furuta, Pierrick Gourlain, Matthieu Mezil

    ISBN original : 978-1-59059-789-9Copyright 2007 by Joseph C. Rattz, Jr.All rights reserved

    dition originale publie par Apress2855 Telegraph Avenue, Suite 600,Berkeley, CA 94705www.apress.com

    Linq.book Page II Mercredi, 18. fvrier 2009 7:58 07

    ISBN : 978-2-7440-4106-8

  • Table des matires

    propos de lauteur.......................................................................................................... XITraducteur et relecteurs techniques ................................................................................ XIII

    Partie I

    LINQ et C# 2008

    1 Hello LINQ.................................................................................................................... 3Un changement de paradigme .................................................................................... 3

    Interrogation XML .......................................................................................... 4Interrogation dune base de donnes SQL Server ........................................... 5

    Introduction ................................................................................................................ 6LINQ et linterrogation des donnes ............................................................... 7Composants ..................................................................................................... 7Comment travailler avec LINQ ....................................................................... 9

    LINQ ne se limite pas aux requtes ............................................................................ 9Quelques conseils avant de commencer ..................................................................... 12

    Utilisez le mot-cl var si vous ntes pas laise ........................................... 12Utilisez les oprateurs Cast ou OfType pour les collections hrites ............. 14Prfrez loprateur OfType loprateur Cast .............................................. 15Les requtes aussi peuvent tre bogues ......................................................... 15Sachez tirer parti des requtes diffres .......................................................... 16Utiliser le log du DataContext ....................................................................... 17Utilisez le forum LINQ ................................................................................... 18

    Rsum ....................................................................................................................... 18

    2 Amliorations de C# 3.0 pour LINQ .......................................................................... 19Les nouveauts du langage C# 3.0 ............................................................................. 19

    Les expressions lambda ................................................................................... 20Arbres dexpressions ....................................................................................... 25Le mot-cl var, linitialisation dobjets et les types anonymes ...................... 26Mthodes dextension ..................................................................................... 31Mthodes partielles ......................................................................................... 37Expressions de requte .................................................................................... 39

    Rsum ....................................................................................................................... 49

    Linq.book Page III Mercredi, 18. fvrier 2009 7:58 07

  • IV Table des matires

    Partie II

    LINQ to Objects

    3 Introduction LINQ to Objects.................................................................................. 53Vue densemble de LINQ to Objects .......................................................................... 53IEnumerable, squences et oprateurs de requte standard ................................ 54IEnumerable, yield et requtes diffres ......................................................... 55

    Dlgus Func ................................................................................................. 58Les oprateurs de requte standard ............................................................................. 59

    Rsum ............................................................................................................ 61

    4 Les oprateurs diffrs................................................................................................. 63Espaces de noms rfrencs ....................................................................................... 63Assemblies rfrencs ................................................................................................ 64Classes communes ...................................................................................................... 64Les oprateurs diffrs, par groupes fonctionnels ...................................................... 65

    Restriction ....................................................................................................... 65Projection ........................................................................................................ 67Partage ............................................................................................................ 76Concatnation .................................................................................................. 83Tri .................................................................................................................... 85Oprateurs de jointure ..................................................................................... 100Oprateurs de regroupement ........................................................................... 104Oprateurs dinitialisation ............................................................................... 110Oprateurs de conversion ................................................................................ 115Oprateurs ddis aux lments ...................................................................... 122Oprateurs de gnration ................................................................................. 126

    Rsum ....................................................................................................................... 129

    5 Les oprateurs non diffrs ......................................................................................... 131Espaces de noms rfrencs ....................................................................................... 131Classes communes ...................................................................................................... 131Les oprateurs non diffrs, par groupes fonctionnels ............................................... 134

    Oprateurs de conversion ................................................................................ 134Oprateurs dgalit ........................................................................................ 145Oprateurs agissant au niveau des lments ................................................... 148Quantificateurs ................................................................................................ 160Fonctions de comptage .................................................................................... 165

    Rsum ....................................................................................................................... 178

    Linq.book Page IV Mercredi, 18. fvrier 20