LINQ är känt som Language Integrated Query och presenteras i .NET 3.5 och Visual Studio 2008. LINQs förträfflighet är att den ger kapacitet till .NET-språk (som C#, VB.NET och så vidare) för att skapa förfrågningar till återställa information från informationskällan. Till exempel kan ett program hämta data från understudieposterna eller komma till arbetarposter och så vidare. Tidigare år har sådan information lagts undan i en annan datamängd än applikationen, och du vill verkligen lära dig olika typer av frågespråk för att komma åt sådan information som SQL, XML och så vidare. Och dessutom kan du inte ställa en fråga med C#-språk eller något annat .NET-språk.
sträng understräng
För att övervinna sådana problem skapade Microsoft LINQ. Den ansluter ytterligare en kapacitet till C#- eller .NET-dialekterna för att skapa en fråga för vilken LINQ-livskraftig informationskälla som helst. Vad mer, det bästa är att meningsstrukturen som används för att göra en fråga är likartad oavsett vilken typ av informationskälla som används betyder att grammatiken för att göra en förfrågan om information i en social datamängd är densamma som den som används för att göra frågeinformation lägga undan i ett kluster finns det övertygande skäl att behöva använda SQL eller någon annan icke-.NET-språkkomponent. Du kan också använda LINQ med SQL, med XML-poster, med ADO.NET, med webbadministrationer och med någon annan informationsbas.
I C# är LINQ tillgängligt i System. Linq namnutrymme. Det ger olika sorters klasser och tekniker som upprätthåller LINQ-frågor. I detta namnutrymme:
- Klassen Enumerable innehåller en standardfrågeoperator som fungerar på ett objekt som kör IEnumerable.
- Den frågebara klassen innehåller standardförfrågningsadministratörer som arbetar på ett objekt som kör IQueryable.
Till exempel : SQL är ett strukturerat frågespråk som används för att spara och återställa data från databasen. Likaså är LINQ en struktur för organiserad frågesats. LINQ är den grundläggande C#. Den används för att återställa information från olika typer av källor, till exempel XML, dokument, samlingar, ADO.Net DataSet, Web Service, MS SQL Server och olika databasservrar.
Användningar av LINQ
- Det primära skälet bakom att göra LINQ är, innan C# 3.0, vi använde för loop, för varje loop, eller delegater för att korsa en samling för att spåra ett visst objekt, men nackdelen med att involvera dessa strategier för att hitta ett objekt är att du verkligen vill komponera en enorm mängd kod för att hitta ett objekt som är extra tråkigt och göra ditt program mindre tydligt. Så för att besegra dessa problem presenteras LINQ, som spelar ut liknande aktivitet i ett par kvantiteter rader och gör din kod tydlig; dessutom kan du involvera liknande kod i olika projekt.
- Det ger dessutom full sorteringskontroll vid kompileringstillfället. Det hjälper oss att urskilja felen under körningen, så vi kan utan tvekan eliminera dem.
- LINQ är att det är okomplicerat, väldigt välordnat och språk på en betydande nivå än SQL
- Du kan också använda LINQ med C#-array och samlingar. Det ger dig ytterligare en vägledning för att ta hand om de gamla frågorna på ett kraftfullt sätt.
- Med hjälp av LINQ kan du utan tvekan arbeta med en datakälla som XML, SQL, Entiteter, objekt och så vidare. En enda fråga kan fungera med databasen, tvingande skäl behöver lära sig olika typer av språk.
- LINQ upprätthåller frågeuttryck, anonyma typer, implicit skrivna variabler, lambdauttryck, objekt- och samlingsinitierare och tilläggsmetoder.
Vi kan använda LINQ-frågor på två sätt
LINQ-frågesyntaxstrukturen består av sökord som kännetecknas av .NET System-återgivning 3.5 eller högre. Detta gör det möjligt för mjukvaruingenjören eller utvecklarna att komponera anvisningarna mycket som SQL-design i koden (C# eller VB.NET) utan att använda hastigheter. Det är på liknande sätt känt i ljuset av det faktum att frågeartikulationens grammatik. I LINQ kan du komponera förfrågan till IEnumerable serier eller IQueryable informationskällor med hjälp av följande strategier:
1. Frågesyntax:
LINQ-frågespråkets syntax börjar med från nyckelordet och slutar med nyckelordet Välj eller GroupBy. Efter från nyckelordet kan du använda olika typer av standardfrågeoperationer som gruppering, filtrering och så vidare, som indikeras av ditt behov. I LINQ är 50 unika typer av standardfrågaadministratörer tillgängliga.
Steg för att skriva frågesyntaxen:
Steg 1: I det första steget måste vi lägga till System.Linq-namnområdet i koden.
i.e., using System.Linq;
Steg 2: I ett andra steg måste vi skapa den datakälla som vi måste utföra operationerna på
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ.' ' Any Queries ' };
Steg 3: I det tredje steget måste vi skapa frågan för datakällan med hjälp av ett nyckelord som välj, från, etc.
Ex: var r = from l in list where l.Contains(' Hii ') select l;
Här är r frågevariabeln som lagrar resultatet av frågeartikulationen. Formklausulen används för att bestämma informationskällan, dvs listan, där villkoret gäller för kanalen, dvs l.Contains(' Hii ') och select-satsen anger typen av de återförda sakerna. Dessutom är l räckviddsvariabeln.
Steg-4: Det sista steget är att köra frågan med hjälp av för varje slinga.
EX: foreach(var i in r) { Console.WriteLine(i); }
Exempelprogram på frågesyntax:
// 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); } } }
Produktion:
2. Metodsyntax
I LINQ används metodsyntax för att anropa expansionsmetoden för de statiska klasserna Enumerable eller Queryable. Det kallas också metodförlängningssyntax eller flytande. Trots detta ändrar kompilatorn i allmänhet frågesyntaxen i metodsyntaxstrukturen vid kompilering. Den kan kalla fram standard frågeoperator som Where, Join, Max, Min, Avg, GroupBy Select, och så vidare. Du har rätt att anropa dem direkt utan att använda frågesyntax.
Steg 1: I det första steget måste vi lägga till System.Linq-namnområdet i koden.
i.e., using System.Linq;
Steg 2: I ett andra steg måste vi skapa den datakälla som vi måste utföra operationerna på
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ ' ' Any Queries ' };
Steg 3: Skapa nu frågan med metoderna som tillhandahålls av de statiska klasserna Enumerable eller Queryable
Ex: var r = list.Where(a=> a.Contains(' JavaTpoint '));
Här är r frågevariabeln som lagrar resultatet av frågeartikulationen. Formulärsatsen används för att bestämma informationskällan, d.v.s. listan, där villkoret gäller för kanalen, d.v.s. l.Contains(' Hii ') och select-satsen ger typen av de återförda sakerna. Dessutom är l räckviddsvariabeln.
Steg-4: Det sista steget är att köra frågan med hjälp av för varje slinga.
'prim's algoritm'
EX: foreach(var i in r) { Console.WriteLine(i); }
Exempelprogram på metodsyntax:
// 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); } } }
Produktion:
Fördelar med LINQ
- Klienten behöver inte lära sig nya frågespråk för en alternativ typ av dataformat eller datakälla.
- Det ökar kodens tydlighet.
- Frågan kan återanvändas.
- Det ger typkontroll av objektet vid monteringstillfället.
- Det ger IntelliSense till konventionella samlingar.
- Det tenderar att användas med samlingar eller arrayer.
- LINQ upprätthåller beställning, gruppering, filtrering och sortering.
- Det gör felsökningen enkel eftersom den är koordinerad med C#-språket.
- Det ger en enkel förändring som tyder på att du utan tvekan kan ändra mer än en datatyp till en annan datatyp som att ändra SQL-data till XML-data.