LINQ відомий як Language Integrated Query і представлений у .NET 3.5 і Visual Studio 2008. Перевага LINQ полягає в тому, що він надає можливість мовам .NET (наприклад, C#, VB.NET тощо) створювати запити до відновити інформацію з джерела інформації. Наприклад, програма може отримати дані із записів дублерів або отримати доступ до записів працівників тощо. У минулі роки така інформація зберігалася в наборі даних, відмінному від додатка, і ви справді хочете вивчити різні види мови запитань, щоб отримати доступ до такого роду інформації, як SQL, XML і так далі. Крім того, ви не можете поставити запитання, використовуючи мову C# чи іншу мову .NET.
спробуйте блок catch у java
Щоб подолати такі проблеми, Microsoft створила LINQ. Він підключає ще одну здатність до діалектів C# або .NET, щоб створити запитання для будь-якого життєздатного джерела інформації LINQ. Більше того, найкраща частина полягає в тому, що структура речення, яка використовується для постановки запитання, схожа незалежно від типу джерела інформації, що означає, що граматика запиту щодо інформації в наборі соціальних даних така сама, як і граматика, яка використовується для створення інформації про запитання. у кластері є вагома причина для використання SQL або іншого компонента мови, що не належить до .NET. Ви також можете використовувати LINQ із SQL, із записами XML, з ADO.NET, з веб-адмініструванням та деякою іншою інформаційною базою.
У C# LINQ доступний у System. Простір імен Linq. Він надає різного роду класи та техніки, які підтримують запитання LINQ. У цьому просторі імен:
- Клас Enumerable містить стандартний оператор запиту, який працює з об’єктом, який виконує IEnumerable.
- Клас queryable містить стандартних адміністраторів запитів, які працюють над об’єктом, який виконує IQueryable.
Наприклад : SQL — це мова структурованих запитів, яка використовується для збереження та відновлення даних із бази даних. Подібним чином LINQ — це структура організованого речення запиту. LINQ є базовим C#. Він використовується для відновлення інформації з різних типів джерел, наприклад, XML, документів, колекцій, ADO.Net DataSet, Web Service, MS SQL Server і різних серверів баз даних.
Використання LINQ
- Основна причина створення LINQ полягає в тому, що до C# 3.0 ми використовували цикл for, for each loop або делегати для проходження колекції для відстеження певного об’єкта, але шкода від залучення цих стратегій для пошуку об’єкта полягає в тому, що ви дійсно хочете Створіть величезну кількість коду, щоб знайти об’єкт, який є додатковим виснажливим і робить вашу програму менш зрозумілою. Тому, щоб подолати ці проблеми, представлено LINQ, який виконує подібну дію в кількох рядках і робить ваш код зрозумілим; крім того, ви можете використовувати схожий код у різних проектах.
- Він додатково забезпечує повну перевірку сортування під час компіляції. Це допомагає нам розрізняти помилки під час виконання, тому ми, безсумнівно, можемо їх усунути.
- LINQ – це зрозуміла, добре організована мова значного рівня, ніж SQL
- Ви також можете використовувати LINQ з масивом і колекціями C#. Він надає вам ще одну вказівку, як ефективно вирішити старі проблеми.
- За допомогою LINQ ви, безсумнівно, можете працювати з джерелом даних, таким як XML, SQL, сутності, об’єкти тощо. Один запит може працювати з базою даних, тому необхідно вивчити різні мови.
- LINQ підтримує вираз запиту, анонімні типи, неявно типізовані змінні, лямбда-вирази, ініціалізатори об’єктів і колекцій і методи розширення.
Ми можемо використовувати запити LINQ двома способами
Структура синтаксису запиту LINQ складається з ключових слів запиту, які характеризуються версією системи .NET 3.5 або вищою. Це дозволяє розробникам програмного забезпечення або розробникам створювати інструкції, дуже схожі на дизайн SQL у коді (C# або VB.NET) без використання ставок. Це подібним чином відомо в світлі того факту, що питання артикуляційної граматики. У LINQ ви можете створити запит до джерел інформації IEnumerable series або IQueryable, використовуючи наступні стратегії:
1. Синтаксис запиту:
Синтаксис мови запитів LINQ починається з ключового слова from і закінчується ключовим словом Select або GroupBy. Після ключового слова from ви можете використовувати різні види операцій стандартного запиту, як-от групування, фільтрування тощо, відповідно до ваших потреб. У LINQ доступні 50 унікальних типів адміністраторів стандартних питань.
Кроки для написання синтаксису запиту:
Крок 1: На першому кроці ми повинні додати простір імен System.Linq до коду.
i.e., using System.Linq;
Крок 2: На другому кроці ми маємо створити джерело даних, на якому ми маємо виконувати операції
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ.' ' Any Queries ' };
Крок 3: На третьому кроці ми маємо створити запит для джерела даних за допомогою ключового слова, наприклад select, from тощо.
Ex: var r = from l in list where l.Contains(' Hii ') select l;
Тут r — змінна запиту, яка зберігає результат артикуляції запиту. Речення форми використовується для визначення джерела інформації, тобто списку, де умова застосовується до каналу, тобто l.Contains('Hii'), а оператор select дає тип повернутих речей. Крім того, l є змінною охоплення.
Крок 4: Останнім кроком є виконання запиту за допомогою циклу for each.
EX: foreach(var i in r) { Console.WriteLine(i); }
Приклад програми щодо синтаксису запиту:
// 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); } } }
Вихід:
2. Синтаксис методу
У LINQ синтаксис методу використовується для виклику методу розширення для статичних класів Enumerable або Queryable. Він також називається Синтаксис розширення методу або Fluent. Незважаючи на це, під час компіляції компілятор зазвичай змінює синтаксис запиту в структурі синтаксису методу. Він може викликати стандартний оператор запиту, наприклад Where, Join, Max, Min, Avg, GroupBy Select і так далі. Ви можете викликати їх прямо, не використовуючи синтаксис запиту.
Крок 1: На першому кроці ми повинні додати простір імен System.Linq до коду.
i.e., using System.Linq;
Крок 2: На другому кроці ми маємо створити джерело даних, з яким ми маємо виконувати операції
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ ' ' Any Queries ' };
Крок 3: Тепер створіть запит за допомогою методів, наданих статичними класами Enumerable або Queryable
Ex: var r = list.Where(a=> a.Contains(' JavaTpoint '));
Тут r — змінна запиту, яка зберігає результат артикуляції запиту. Речення форми використовується для визначення джерела інформації, тобто списку, де умова застосовується до каналу, тобто l.Contains('Hii'), а оператор select дає тип повернутих речей. Крім того, l є змінною охоплення.
таблиця реакцій
Крок 4: Останнім кроком є виконання запиту за допомогою циклу for each.
EX: foreach(var i in r) { Console.WriteLine(i); }
Приклад програми щодо синтаксису методу:
// 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); } } }
Вихід:
Переваги LINQ
- Клієнту не потрібно вивчати нові мови запитів для альтернативного типу формату даних або джерела даних.
- Це збільшує чіткість коду.
- Запит можна використовувати повторно.
- Це забезпечує перевірку типу об'єкта під час збирання.
- Він надає IntelliSense звичайним колекціям.
- Він, як правило, використовується з колекціями або масивами.
- LINQ підтримує впорядкування, групування, фільтрацію та сортування.
- Це спрощує налагодження, оскільки воно узгоджено з мовою C#.
- Це дає прямі зміни, що означає, що ви можете без сумніву змінити більше ніж один тип даних на інший тип даних, наприклад, змінити дані SQL на дані XML.