Innehållsförteckning:
Video: C# Tutorial 15 LINQ Tutorial 2024
Av John Paul Mueller
Språkinställd sökning (LINQ) är en funktion av. NET Framework som expanderar ditt grepp utöver saker Microsoft. Du kan använda LINQ för att fråga nästan vad som helst genom att känna till väsentliga operatörer tillsammans med några ytterligare sökoperatörer. Om du blir lite vilse under vägen, erbjuder Microsoft en mängd resurser via sitt nätverk, bloggar och forum.
Viktiga LINQ-operatörer
Language Integrated Query (LINQ) använder ett fantastiskt utbud av operatörer. En operatör är ett speciellt ord som berättar LINQ vilken typ av fråga som ska utföras, till exempel om två värden är lika. Operatörer kan gå in i hundratals, men i de flesta fall utför du de flesta uppgifterna med bara några standardoperatörer. Nedan följer en lista över viktiga LINQ-operatörer.
Operatör | Beskrivning |
---|---|
från | Definierar det temporära objektet som används för att utföra en fråga. Tänk på
den här operatören som definierar det enskilda elementobjektet från vilket du erhåller all annan data för frågan. Till exempel väljer du vilka data som ska visas i utmatningen och hur dessa data beställs baserat på den temporära variabeln. Operatören från är den enda som måste visas i varje fråga du skapar. |
i | Definierar datakällan som används för att hämta data. En datakälla
kan vara något objekt som stöds av en dataleverantör. Leverantören skapar en koppling mellan datakällan och LINQ-frågan. Till exempel kan en datakälla innehålla ett objekt som en lista , en XML-fil, ett SQL Server-bord, Active Directory, en webb -service eller nästan allt annat du vill använda att samla information. Det är även möjligt att arbeta direkt med filer på din hårddisk med hjälp av en LINQ-fråga. En fråga kan innehålla så många matchande par från och i operatörer som behövs för att fullständigt beskriva de datakällor som används i frågan. |
välj | Väljer utdatainformation för frågan. Den enklaste
-utgången är det samma objektet du definierar med hjälp av operatören från. En valda operatör kan emellertid innehålla beräknade värden, dataregister eller enskilda objektegenskaper. Den begränsande -faktorn är i de flesta fall den funktionalitet som erbjuds av LINQ -leverantören. Alla fyra standardleverantörerna innehåller det fullständiga -intervallet av operatörsbeteenden. En -fråga innehåller bara en valda operatör och den här operatören måste visas som den sista operatören i sökfrågan . |
där | Beskriver villkoren för att ett element visas som del
av utgången.Den där operatören alltid kräver ett booleskt argument för att definiera utgångsförhållandena. Du kan inkludera så många där operatörer som behövde fullständigt beskriva utmatningskriterierna. LINQ tolkar där operatörer i den ordning där de visas i frågan, så order är viktig. När en fråga inte fungerar som förväntat, försök ändra ordningen för var operatörerna bättre beskriver de krav som krävs för utmatningen . Använd debuggern för att lokalisera fel i det logiska flödet av var operatörer. |
orderby | Definierar den ordning i vilken utgångselementen visas. Den enklaste orderbyoperatören
är beroende av det -objekt du definierar med användaren från . En orderby-operatör kan emellertid acceptera alla uttalanden som definierar ett logiskt ordningsargument som input - normalt numeriskt, alfabetiskt, symboliskt eller binärt. Du kan använda så många orderby operatörer som som behövs för att fullständigt beskriva utdataordningen för data. Liksom hos operatören tolkar LINQ orderby-operatören i den ordning som den visas i frågan. Följaktligen är ordern hos orderby-operatörerna viktiga. |
gå med och på | Kombinerar två eller flera datakällor för att skapa en kompositvy av
data. Datakällorna behöver inte förlita sig på samma leverantörer. Du kan använda så många medverkande operatörer som som krävs för att fullständigt beskriva alla datakällor som används för en fråga. Operatören definierar kriteriet som används för att kombinera två datakällor. Koppla ihop och på operatörer för att skapa en komplett datakälla. |
låt | Skapar ett beräknat värde för användning inom frågan. Beräknade
-värden gör det lättare att formulera komplexa frågor. Dessutom kan du överföra ett beräknat värde till uppringaren för att ge ytterligare utgångsinformation. I många fall ger letoperatören medlen för att skicka data som LINQ inte normalt kommer att passera på grund av en namngivningskonflikt. Du kan använda så många operatörer som krävs för att tillhandahålla fullständig sökfunktionalitet, men du bör begränsa användningen till situationer där ett beräknat -värde ökar sökhastigheten. |
Exploring LINQ Standard Query Operator Groups
Med hjälp av vanliga frågeoperatörer gör arbetet med Language Integrated Query (LINQ) betydligt enklare. På många sätt har du förmodligen redan arbetat med enkla sökoperatörer. När du till exempel använder ordningsbytesordet använder du en sökoperatör i sorteringsgruppen för standardfrågningsoperatörer. När du använder var nyckelordet använder du en annan sökoperatör, men den här gången finns det i filtreringsgruppen.
Här är en lista över standardfrågningsoperatörsgrupper och där du kan hitta ytterligare information.
Grupp | Gruppbeskrivning | Inkluderade operatörer | Ytterligare information |
---|---|---|---|
Sammanställningsoperationer | Sammanställningsoperatörerna hjälper dig att utföra matematiska
uppgifter med en datakälla. |
Sammanlagt, Genomsnitt, Räkning, LongCount, Max, Min och Sum | Microsoft
Utvecklarnätverk: Aggregationsoperationer |
Sammanställningsoperationer | Med den enda sammanslutningsoperatören kan du kombinera två
-sekvenser. |
Concat | Microsoft
Utvecklarnätverk: Sammanställningsoperationer |
Konvertera datatyper | Konvertera datatyper finns i två former: uppskjutna och
icke-uppdelade. Operatörerna för uppskjuten omvandling omvandlar resultaten till en fråga till en viss typ, eftersom koden tolkar resultatet . Konverteringsoperatörerna ändrar utmatningen av en -fråga till en viss typ. |
Utvecklingsnätverk: Konvertering av datatyper
Elementoperationer Elementoperatörerna hjälper till med att utveckla datatyper. |
AsEerable, AsQueryable, Cast,
OfType, ToArray, ToDictionary, ToList, |
och ToLookup | Microsoft
du väljer ett visst element i en -sekvens, även om du inte känner till någon identifierande information |
om det elementet, till exempel namnet.
ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last, |
LastOrDefault, Single och SingleOrDefault
Microsoft |
Utvecklarnätverk: Element Operations | Likabehandling
två -sekvenser är lika (antalet element och innehållet i varje |
-elementet är lika). | SequenceEqual
Microsoft |
Utvecklarnätverk: Likabehandling | Filtreringsdata
Filtreringsoperatörerna hjälper dig att utesluta eller inkludera element i |
en sekvens baserad på specifika kriterier. | OfType och Where
Microsoft |
Utvecklarnätverk: Filtrera data | Generationsoperationer
Generationsoperatörerna skapar en ny sekvens baserad på de kriterier som du anger. |
StandardIfEmpty, Empty, Range och
Repeat |
Microsoft
Utvecklarnätverk: Generationsoperationer |
Gruppera data | Gruppoperatörerna hjälper dig att sortera data med en särskild
egenskap, t.ex. som första bokstaven i en grupp med strängar. |
Gruppverksamhet | Utvecklingsnätverk: Gruppera data
Gå med i operationer |
Anslutningsoperatörerna accepterar två eller flera sekvenser som inmatning och | skapa en enda utgångssekvens baserad på ett specifikt deltagande typ och
anslutningskriterierna. Gå med och GroupJoin |
Microsoft | Utvecklarnätverk: Gå med i operationer
Partitioneringsdata |
Partitioneringsoperatörerna hjälper dig att dela en sekvens till | hitta specifik information.
Projektionsoperationer |
Projektionsoperatörerna skapar en ny typ baserat på frågan
du skapar. |
Projektionsoperationer
Projektionsoperatörerna skapar en ny typ baserat på frågan |
du skapar. | Välj och välj Mer
Microsoft |
Utvecklarnätverk: Projektionsoperationer | Kvantifieringsoperationer
Kvantifieringsoperatörerna hjälper dig att välja element baserat på |
specifika kriterier. Du använder dessa operatörer för att bestämma om | inget, ett eller flera element uppfyller de valda
kriterierna. Allt, Alla, och Innehåller |
Microsoft
Utvecklarnätverk: Kvantifieringsoperationer |
Ange operativsystem
De inställda operatörerna skapar uppsättningar. Tänk på den uppsatta aritmetik du |
utförde i skolan. | Distinct, Except, Intersect,
och Union |
Microsoft
Utvecklarnätverk: Ange operationer |
Sortera data
Sorteringsoperatörerna hjälper dig att sätta en sekvens i en viss |
order. | OrderBy, OrderByDescending, ThenBy, ThenByDescending och Reverse
Microsoft |
Utvecklarnätverk: Sortering av data | Microsoft LINQ Resources
Det är alltid användbart att veta var du kan gå till ytterligare information och verktyg och förbättringar när du skapar dina språkinvandrade sökningar (LINQ). Här är en lista över användbara Microsoft-resurser för LINQ. |
Microsoft Developer Network
Microsoft Developer Network (MSDN) har alltid tillhandahållit baslinjematerialet för alla Microsoft-utvecklingsprodukter. Du hittar ett helt lager av information där - mer än vad en människa kan förmodligen läsa under en livstid. Följaktligen måste du sikta informationen noggrant, eller du kommer snabbt att gå vilse i MSDN labyrinten. Den viktigaste MSDN-webbplatsen för att arbeta med LINQ ger dig nyheter, resurser och tillgång till annan information, som exempel.
Microsoft-bloggar
Microsoft vill att du ska veta hur man arbetar med LINQ. Tidigare skulle du hitta mycket av informationen du behöver på MSDN. MSDN-webbplatsen är fortfarande en bra plats att gå, men många Microsoft-utvecklare klagade över att det var lite för formellt (artiklarna är ganska svåra att förstå i vissa fall) och det fanns ingen möjlighet att interagera med författarna. Microsoft-bloggarna ger en vänligare miljö för att få information där du faktiskt kan matcha författaren. Här är några bloggar som du vill besöka när du arbetar med LINQ:
Beth Massi: Dela godheten som är Visual Basic (VB)
Charlie Calverts gemenskapsblogg
-
Wrijus BLOGG:. NET och allt
-
De flesta av dessa bloggar är generiska - de diskuterar alla programmeringsproblem av något slag. Följaktligen hittar du en blandning av ämnen i varje blogg. Författaren kan diskutera filsystemet i ett inlägg och LINQ på en annan. Var och en har LINQ-specifika poster som du kan söka efter med hjälp av sökfunktionerna på bloggen. Även om Charlie Calvert har lämnat Microsoft, innehåller hans blogg en mängd allmänna LINQ-uppgifter.
-
Microsoft-forum
Om du inte tror att du får tillräckligt med interaktion med Microsoft via en blogg, brukar Microsoft-anställda ofta även Microsoft-forumet. Att ladda upp ett meddelande till rätt forum kan ge dig någon professionell hjälp eller åtminstone en del kunnig hjälp från ett annat forummedlem. De flesta utvecklare är beroende av MSDN-forumet för grundläggande frågor om LINQ. Du kan se en allmän lista över forum på Microsoft Community. Glöm inte att prova det språkspecifika forumet för Visual Basic. NETTO.