LINQ žinomas kaip Language Integrated Query ir pateikiama .NET 3.5 ir Visual Studio 2008. LINQ pranašumas yra tas, kad jis suteikia galimybę .NET kalboms (pvz., C#, VB.NET ir kt.) kurti užklausas atkurti informaciją iš informacijos šaltinio. Pavyzdžiui, programa gali gauti duomenis iš nepakankamo tyrimo įrašų arba pasiekti darbuotojų įrašus ir pan. Ankstesniais metais tokia informacija buvo patalpinta į kitą duomenų rinkinį nei programa, ir jūs tikrai norite išmokti įvairių klausimų kalbų, kad galėtumėte pasiekti tokią informaciją, pvz., SQL, XML ir pan. Be to, jūs negalite užduoti klausimo naudodami C# kalbą ar kitą .NET kalbą.
sąrašo pavyzdys java
Kad išspręstų tokias problemas, „Microsoft“ sukūrė LINQ. Jis sujungia dar vieną talpą su C# arba .NET dialektais, kad sukurtų klausimą bet kuriam LINQ tinkamam informacijos šaltiniui. Be to, geriausia yra tai, kad klausimo sakinio struktūra yra panaši, nepaisant to, koks informacijos šaltinis naudojamas, tai reiškia, kad užklausos apie informaciją socialinių duomenų rinkinyje gramatika yra tokia pati kaip ir klausimo informacijai pateikti. yra įtikinama priežastis naudoti SQL ar kitą ne.NET kalbos komponentą. Taip pat galite naudoti LINQ su SQL, su XML įrašais, su ADO.NET, su žiniatinklio administravimu ir kita informacijos baze.
C# kalboje LINQ galima naudoti sistemoje. „Linq“ vardų erdvė. Tai suteikia įvairių klasių ir metodų, kurie palaiko LINQ klausimus. Šioje vardų erdvėje:
- „Enumerable“ klasė turi standartinį užklausos operatorių, kuris veikia su objektu, kuris vykdo „IEnumerable“.
- Užklausų klasėje yra standartiniai užklausų administratoriai, kurie dirba su objektu, kuris vykdo IQueryable.
Pavyzdžiui : SQL yra struktūrinė užklausos kalba, kuri naudojama duomenims iš duomenų bazės išsaugoti ir atkurti. Taip pat LINQ yra organizuotos užklausos sakinio struktūra. LINQ yra pagrindinis C#. Jis naudojamas informacijai atkurti iš įvairių šaltinių, pavyzdžiui, XML, dokumentų, kolekcijų, ADO.Net DataSet, Web Service, MS SQL serverio ir įvairių duomenų bazių serverių.
LINQ naudojimas
- Pagrindinė LINQ kūrimo priežastis yra ta, kad iki C# 3.0 mes naudojome kilpą, kiekvienai kilpai arba delegatus, kad pervažiuotume kolekciją, kad susektume konkretų objektą, tačiau šių strategijų panaudojimas ieškant objekto kenkia tai, kad jūs tikrai norite Sukurkite didžiulį kodo kiekį, kad surastumėte objektą, kuris yra papildomai varginantis ir jūsų programa taps ne tokia aiški. Taigi, siekiant įveikti šias problemas, pateikiamas LINQ, kuris atlieka panašią veiklą keliomis eilučių kiekiais ir padaro jūsų kodą aiškų; be to, panašų kodą galite įtraukti į skirtingus projektus.
- Tai papildomai suteikia pilną rūšiavimo patikrinimą kompiliavimo metu. Tai padeda mums atskirti klaidas vykdymo metu, todėl galime neabejotinai jas pašalinti.
- LINQ yra paprasta, labai išdėstyta ir reikšmingo lygio kalba nei SQL
- Taip pat galite naudoti LINQ su C# masyvu ir kolekcijomis. Jame pateikiamos kitos gairės, kaip efektyviai išspręsti senas problemas.
- Naudodamiesi LINQ, neabejotinai galite dirbti su duomenų šaltiniu, pvz., XML, SQL, objektais, objektais ir kt. Viena užklausa gali veikti su duomenų baze, todėl būtina išmokti įvairių kalbų.
- LINQ palaiko užklausos išraišką, anoniminius tipus, netiesiogiai įvestus kintamuosius, Lambda išraiškas, objektų ir rinkinių iniciatorius ir plėtinio metodus.
LINQ užklausas galime naudoti dviem būdais
LINQ užklausa Sintaksės struktūra susideda iš užklausos raktinių žodžių, kurie apibūdinami .NET System 3.5 arba naujesnėje versijoje. Tai leidžia programinės įrangos inžinieriams ar kūrėjams sudaryti nuorodas, panašias į SQL dizainą kode (C# arba VB.NET), nenaudojant įkainių. Tai taip pat žinoma atsižvelgiant į tai, kad Klausimo artikuliacijos gramatika. LINQ galite sudaryti užklausą IEnumerable serijoms arba IQueryable informacijos šaltiniams, naudodami toliau pateiktas strategijas:
1. Užklausos sintaksė:
LINQ užklausos kalbos sintaksė prasideda nuo raktinio žodžio ir baigiasi raktiniu žodžiu Select arba GroupBy. Po raktinio žodžio galite naudoti įvairias standartines užklausos operacijas, tokias kaip grupavimas, filtravimas ir pan., atsižvelgiant į jūsų poreikį. LINQ galima pasiekti 50 unikalių tipų standartinių klausimų administratorių.
Užklausos sintaksės rašymo veiksmai:
1 žingsnis: Pirmuoju žingsniu į kodą turime įtraukti System.Linq vardų erdvę.
i.e., using System.Linq;
2 žingsnis: Antrame etape turime sukurti duomenų šaltinį, kuriame turime atlikti operacijas
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ.' ' Any Queries ' };
3 veiksmas: Trečiajame etape turime sukurti duomenų šaltinio užklausą naudodami raktinį žodį, pvz., Select, from ir kt.
Ex: var r = from l in list where l.Contains(' Hii ') select l;
Čia r yra užklausos kintamasis, kuriame saugomas užklausos artikuliacijos rezultatas. Formos sąlyga naudojama informacijos šaltiniui nustatyti, t. y. sąrašui, kuriame kanalui taikoma sąlyga, t. y. l.Contains('Hii'), o pasirinkimo sakinys nurodo sugrąžintų dalykų rūšį. Be to, l yra pasiekiamumo kintamasis.
4 veiksmas: Paskutinis veiksmas yra vykdyti užklausą naudojant kiekvienos kilpos funkciją.
EX: foreach(var i in r) { Console.WriteLine(i); }
Užklausos sintaksės programos pavyzdys:
// program to create LINQ query using Query Syntax // step-1: Adding the System.Linq namespace in the code. using System; using System.Linq; using System.Collections.Generic; class HelloWorld { // Main Method static public void Main() { // Step-2: creating the data source on which we have to perform the operations List list = new List() { ' Hii JavaTpoint', ' Welcome to JavaTpoint ', ' The topic is LINQ ', ' Any Queries ' }; // step-3: Creating the LINQ query for the data source using a keyword like select, from, etc. var r = from l in list where l.Contains(' JavaTpoint') select l; // In this will print only the sentence which contains JavaTpoint word // step-4: Executing LINQ Query using the for each loop foreach(var i in r) { Console.WriteLine(i); } } }
Išvestis:
2. Metodo sintaksė
LINQ metodo sintaksė naudojama statinių klasių „Enumerable“ arba „queryable“ išplėtimo metodui iškviesti. Jis taip pat vadinamas Method Extension Sintaksė arba Fluent. Nepaisant to, kompiliatorius paprastai keičia užklausos sintaksę metodo sintaksės struktūroje kompiliavimo metu. Jis gali iškviesti standartinį užklausos operatorių, pvz., Kur, Join, Max, Min, Avg, GroupBy Select ir kt. Jums leidžiama juos skambinti tiesiai, nenaudojant užklausos sintaksės.
1 žingsnis: Pirmuoju žingsniu į kodą turime įtraukti System.Linq vardų erdvę.
i.e., using System.Linq;
2 žingsnis: Antrame etape turime sukurti duomenų šaltinį, kuriame turime atlikti operacijas
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ ' ' Any Queries ' };
3 veiksmas: Dabar sukurkite užklausą naudodami statinių klasių Enumerable arba Queryable metodus
Ex: var r = list.Where(a=> a.Contains(' JavaTpoint '));
Čia r yra užklausos kintamasis, kuriame saugomas užklausos artikuliacijos rezultatas. Formos sąlyga naudojama informacijos šaltiniui nustatyti, t. y. sąrašui, kuriame kanalui taikoma sąlyga, t. y. l.Contains('Hii'), o pasirinkimo sakinys nurodo sugrąžintų dalykų rūšį. Be to, l yra pasiekiamumo kintamasis.
4 veiksmas: Paskutinis veiksmas yra vykdyti užklausą naudojant kiekvienos kilpos funkciją.
EX: foreach(var i in r) { Console.WriteLine(i); }
Metodo sintaksės programos pavyzdys:
// program to create LINQ query using Method syntax // step-1: Adding the System.Linq namespace in the code. using System; using System.Linq; using System.Collections.Generic; class HelloWorld { // Main Method static public void Main() { // Step-2: creating the data source on which we have to perform the operations List list = new List() { ' Hii JavaTpoint', ' Welcome to JavaTpoint ', ' The topic is LINQ ', ' Any Queries ' }; //step-3 creating the query using the methods provided by the Enumerable or Queryable static classes var r = list.Where(a=> a.Contains(' JavaTpoint ')); // In this will print only the sentence which contains JavaTpoint word // Executing LINQ Query using the for each loop foreach(var i in r) { Console.WriteLine(i); } } }
Išvestis:
kas yra kompiuteris
LINQ pranašumai
- Klientui nereikia mokytis naujų užklausų kalbų, kad galėtų naudoti alternatyvų duomenų formato ar duomenų šaltinio tipą.
- Tai padidina kodo aiškumą.
- Užklausą galima naudoti pakartotinai.
- Tai suteikia objekto tipo patikrinimą surinkimo metu.
- Tai suteikia „IntelliSense“ įprastoms kolekcijoms.
- Jis dažniausiai naudojamas su kolekcijomis ar masyvais.
- LINQ palaiko tvarką, grupavimą, filtravimą ir rūšiavimą.
- Derinimas yra paprastas, nes suderinamas su C# kalba.
- Tai suteikia aiškų pakeitimą, rodantį, kad be jokios abejonės galite pakeisti daugiau nei vieną duomenų tipą į kitą duomenų tipą, pvz., pakeisti SQL duomenis į XML duomenis.