Indholdsfortegnelse:
Video: C# Tutorial 15 LINQ Tutorial 2025
Af John Paul Mueller
Sproginddelt forespørgsel (LINQ) er en funktion af. NET Framework, der udvider din forståelse langt ud over ting Microsoft. Du kan bruge LINQ til at spørge næsten alt ved at kende vigtige operatører sammen med et par yderligere forespørgselsoperatører. Hvis du bliver lidt tabt undervejs, tilbyder Microsoft et væld af ressourcer via sit netværk, blogs og fora.
Væsentlige LINQ Operatører
Sprogintegreret forespørgsel (LINQ) bruger et fantastisk udvalg af operatører. En operatør er et specielt ord, der fortæller LINQ, hvilken type forespørgsel der skal udføres, f.eks. At kontrollere, om to værdier er ens. Operatører kan løbe ind i hundrederne, men i de fleste tilfælde udfører du de fleste opgaver ved kun at bruge nogle få standardoperatører. Nedenfor er en liste over vigtige LINQ operatører.
Operatør | Beskrivelse |
---|---|
fra | Definerer det midlertidige objekt, der bruges til at udføre en forespørgsel. Tænk på
denne operatør som definerer det individuelle elementobjekt, hvorfra du udleder alle andre data for forespørgslen. Du vælger for eksempel , hvilke data der vises i output, og hvordan disse data bestilles baseret på den midlertidige variabel. Operatøren fra er den eneste, der skal vises i hver forespørgsel, du opretter. |
i | Definerer datakilden, der bruges til at hente dataene. En datakilde
kan være ethvert objekt understøttet af en dataudbyder. Udbyderen opretter en forbindelse mellem datakilden og LINQ-forespørgslen. En datakilde kan f.eks. Indeholde en genstand som en liste , en XML-fil, en SQL Server-tabel, Active Directory, en web tjeneste eller næsten alt andet du vil bruge at indsamle information. Det er endda muligt at arbejde direkte med filer på din harddisk ved hjælp af en LINQ forespørgsel. En forespørgsel kan indeholde så mange matchende par fra og i operatører som det er nødvendigt for fuldt ud at beskrive de datakilder, der bruges i forespørgslen. |
vælg | Vælger outputoplysningerne for forespørgslen. Den enkleste
-udgang er det samme objekt, du definerer ved hjælp af operatøren fra. En selekteringsoperatør kan dog indbefatte beregnede værdier, datarammer eller individuelle objektegenskaber. Den begrænsende faktor er i de fleste tilfælde den funktionalitet, som LINQ tilbyder. Alle fire standardleverandører omfatter det komplette udvalg af udvalgte operatøradfærd. En forespørgsel indeholder kun én valgt operatør , og denne operatør skal vises som den sidste operatør i forespørgslen . |
hvor | Beskriver betingelserne for, at et element vises som del
af output.Hvor operatøren altid kræver et booleskt argument til at definere udgangsvilkårene. Du kan omfatte så mange, hvor operatører som har brug for at beskrive outputkriterierne fuldt ud. LINQ fortolker hvor operatører i den rækkefølge, hvor de vises i forespørgslen, så ordren er vigtig. Når en forespørgsel ikke virker som forventet, kan du prøve at ændre rækkefølgen af, hvor operatørerne bedre beskriver kravene til output . Brug debuggeren til at hjælpe med at lokalisere fejl i det logiske flow af hvor operatører. |
orderby | Definerer rækkefølgen, hvor outputelementerne vises. Den
enkleste orderby-operatør er afhængig af det objekt, du definerer ved hjælp af operatøren fra . En ordreoperatør kan dog acceptere enhver erklæring, der definerer et logisk ordreringsargument som input - normalt numerisk, alfabetisk, symbol eller binær. Du kan bruge så mange orderby-operatører som , som er nødvendige for at beskrive dataens outputordre fuldt ud. Som med hvor operatøren fortolker LINQ ordreoperatøren i den rækkefølge, hvor den vises i forespørgslen. Derfor er ordren hos orderby-operatørerne vigtige. |
join og på | Kombinerer to eller flere datakilder for at oprette en sammensat visning af
dataene. Datakilderne behøver ikke at stole på de samme udbydere. Du kan bruge så mange tilmeldte operatører som , som kræves for at beskrive alle de datakilder, der bruges til en forespørgsel. Operatøren definerer kriteriet, der bruges til at kombinere to datakilder. Pair join og på operatører for at oprette en komplet datakilde. |
Lad | Opretter en beregnet værdi til brug i forespørgslen. Beregnede
-værdier gør det lettere at formulere komplekse forespørgsler. Derudover kan du overføre en beregnet værdi til opkalderen for at give yderligere outputoplysninger. I mange tilfælde giver let-operatøren midlerne til at overføre data, som LINQ normalt ikke vil passere på grund af en navngivningskonflikt. Du kan bruge så mange lad operatører som krævet for at give fuld forespørgselsfunktionalitet, men du bør begrænse brugen af til situationer, hvor en beregnet -værdi øger forespørgselshastigheden. |
Udforskning af LINQ Standard Query Operator Groups
Brug af standard forespørgselsoperatører gør det lettere at arbejde med Sprogintegrated Query (LINQ). På mange måder har du sikkert allerede arbejdet med enkle forespørgselsoperatører. Når du f.eks. Bruger ordresideordet, bruger du en forespørgselsoperatør i sorteringsgruppen for standard forespørgselsoperatører. Når du bruger det søgeord, bruger du en anden forespørgselsoperatør, men denne gang er det i filtreringsgruppen.
Her er en liste over standard forespørgselsoperatørgrupper, og hvor du kan finde yderligere oplysninger.
Gruppe | Gruppebeskrivelse | Inkluderede operatører | Yderligere oplysninger |
---|---|---|---|
Aggregationsoperationer | Aggregationsoperatørerne hjælper dig alle med at udføre matematiske
opgaver med en datakilde. |
Samlet, Gennemsnit, Grev, LongCount, Max, Min og Sum | Microsoft
Udvikler Netværk: Aggregationsoperationer |
Sammenkædningsoperationer | Den eneste sammenkædingsoperator lader dig kombinere to
sekvenser. |
Concat | Microsoft
Udvikler Netværk: Sammenkædningsoperationer |
Konvertering af datatyper | Konvertering af datatyper findes i to former: udskudt og
ikke-udvalgt. De udskudte konverteringsoperatører konverterer resultaterne til en forespørgsel til en bestemt type, da koden fortolker resultatet . De nondeferred konverteringsoperatører ændrer output fra en forespørgsel til en bestemt type. |
Udviklingsnetværk: Konvertering af datatyper
Elementoperationer Elementoperatørerne hjælper med at Du vælger et bestemt element i en |
-sekvens, selvom du ikke kender nogen identificerende oplysninger
om det element, f.eks. dets navn. |
ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last, | LastOrDefault, Single og SingleOrDefault
Microsoft Udviklingsnetværk: Elementoperationer |
Ligestillingsoperationer
to |
sekvenser er ens (antallet af elementer og indholdet af hvert
element er ens). |
SequenceEqual | Microsoft
Udvikler Netværk: Ligestilling Filtrering af data |
Filtreringsoperatørerne hjælper dig med at udelukke eller inkludere elementer i | en sekvens baseret på specifikke kriterier.
OfType og Where |
Microsoft | Udviklingsnetværk: Filtrering af data
Generationsoperationer |
Generationsoperatørerne opretter en ny sekvens baseret på de kriterier, du specificerer | .
StandardIfEmpty, Empty, Range og |
Repeat | Microsoft
Udvikler Netværk: Generationsoperationer |
Gruppering af data
Grupperingsoperatørerne hjælper dig med at sortere data efter en bestemt |
karakteristik, f.eks. som første bogstav i en gruppe af
strenge. |
Gruppeby og ToLookup | Microsoft
Udvikler Netværk: Gruppering af data Deltag i operationer |
Tilslutningsoperatørerne accepterer to eller flere sekvenser som input og | opretter en enkelt udgangssekvens baseret på en bestemt tilslutning type og
tilslutningskriterierne. |
Deltag i og GroupJoin | Microsoft
Udviklingsnetværk: Deltag i drift Partitioneringsdata |
Partitioneringsoperatørerne hjælper dig med en sekvens til | Find specifikke oplysninger.
Projektionsoperationer |
Projektionsoperatørerne opretter en ny type baseret på forespørgslen | du opretter.
Udviklingsnetværk: Partitioneringsdata |
Projektionsoperationer
Projektionsoperatørerne opretter en ny type baseret på forespørgslen |
du opretter.
Vælg og vælg Flere |
Microsoft | Udviklingsnetværk: Projektionsoperationer
Kvantifikationsoperationer |
Kvantifikatoroperatørerne hjælper dig med at vælge elementer baseret på | specifikke kriterier. Du bruger disse operatører til at afgøre, om
ingen, et eller flere elementer opfylder de valgte |
kriterier. | Alt, Any,
og Indeholder Microsoft Udvikler Netværk: Quantifier Operations |
Indstil operationer
De indstillede operatører opretter sæt. Tænk på den sætte aritmetik du |
udførte i skolen.
Distinct, Except, Intersect, |
og Union | Microsoft
Developer Network: Indstil operationer |
Sortering af data
Sorteringsoperatørerne hjælper dig med at sætte en sekvens i en bestemt |
rækkefølge.
OrderBy, OrderByDescending, ThenBy, ThenByDescending og Reverse |
Microsoft | Udvikler Netværk: Sortering af data
Microsoft LINQ Resources |
Det er altid nyttigt at vide, hvor du kan gå til yderligere oplysninger og værktøjer og forbedringer når du opretter dine sprogindgigrede forespørgsler (LINQ) applikationer. Her er en liste over nyttige Microsoft-ressourcer til LINQ. | Microsoft Developer Network
Microsoft Developer Network (MSDN) har altid leveret baseline-materialet til alle Microsoft-udviklingsprodukter. Du finder et helt lager af information der - mere end noget menneske kan nok læse i livet. Derfor skal du forsigtige oplysningerne omhyggeligt, eller du vil hurtigt gå tabt i MSDN labyrinten. Det vigtigste MSDN-websted til at arbejde med LINQ giver dig nyheder, ressourcer og adgang til andre oplysninger, såsom prøver. |
Microsoft blogs
Microsoft vil have dig til at vide, hvordan du arbejder med LINQ. I fortiden vil du finde meget af de oplysninger, du har brug for på MSDN. MSDN-webstedet er stadig et godt sted at gå, men mange Microsoft-udviklere klagede over, at det var lidt for formelt (artiklerne er ret vanskelige at forstå i nogle tilfælde), og der var ikke nogen mulighed for at interagere med forfatterne. Microsoft blogs giver et venligere miljø til at indhente oplysninger, hvor du faktisk kan svare til forfatteren. Her er et par blogs, du vil besøge, når du arbejder med LINQ:
Beth Massi: Deling godheden, der er Visual Basic (VB)
Charlie Calvert's Community Blog
Wriju's BLOG:. NET og Alt
De fleste af disse blogs er generiske - de diskuterer alle programmeringsproblemer af en eller anden art. Derfor finder du en blanding af emner i hver blog. Forfatteren kan diskutere filsystemet i et indlæg og LINQ på en anden. Hver har LINQ-specifikke indgange, som du kan søge efter ved hjælp af søgefunktionerne på bloggen. Selvom Charlie Calvert har forladt Microsoft, indeholder hans blog et væld af generelle LINQ-oplysninger.
-
Microsoft-forums
-
Hvis du ikke tror, at du får nok interaktion med Microsoft gennem en blog, bruger Microsoft-medarbejdere ofte også Microsoft-fora. Overførsel af en besked til det korrekte forum kan netop give dig nogle professionelle hjælp eller i det mindste nogle kyndige hjælp fra et andet forummedlem. De fleste udviklere stole på MSDN forumet for grundlæggende spørgsmål om LINQ. Du kan se en generel liste over fora på Microsoft Community. Glem ikke at prøve det sprogspecifikke forum for Visual Basic. NET.