logo

ما هو لينك؟

يُعرف LINQ بالاستعلام المتكامل للغة، ويتم تقديمه في .NET 3.5 وVisual Studio 2008. ويكمن تميز LINQ في أنه يمنح القدرة للغات .NET (مثل C# وVB.NET وما إلى ذلك) لإنشاء استعلامات استعادة المعلومات من مصدر المعلومات. على سبيل المثال، قد يحصل البرنامج على بيانات من سجلات الطالب البديل أو يصل إلى سجلات العاملين، وما إلى ذلك. في السنوات السابقة، تم تخزين هذا النوع من المعلومات في مجموعة بيانات مختلفة من التطبيق، وتريد حقًا تعلم أنواع مختلفة من لغة الأسئلة للوصول إلى هذا النوع من المعلومات مثل SQL وXML وما إلى ذلك. علاوة على ذلك، لا يمكنك طرح سؤال باستخدام لغة C# أو أي لغة .NET أخرى.

جافا سكريبت للقائمة المنسدلة

للتغلب على مثل هذه الأنواع من المشكلات، أنشأت Microsoft LINQ. فهو يربط سعة أخرى بلهجات C# أو .NET لإنشاء سؤال لأي مصدر معلومات قابل للتطبيق في LINQ. علاوة على ذلك، فإن أفضل ما في الأمر هو أن بنية الجملة المستخدمة لطرح سؤال متشابهة بغض النظر عن نوع مصدر المعلومات المستخدم، مما يعني أن القواعد النحوية لإجراء استعلام حول المعلومات في مجموعة بيانات اجتماعية هي نفسها المستخدمة لإنشاء معلومات السؤال يوجد سبب مقنع للحاجة إلى استخدام SQL أو بعض مكونات اللغة الأخرى غير التابعة لـ NET. يمكنك أيضًا استخدام LINQ مع SQL، ومع سجلات XML، ومع ADO.NET، ومع خدمات الويب، ومع بعض قواعد البيانات الأخرى.

في لغة C#، يتوفر LINQ في System.Data. مساحة الاسم لينك. إنه يقدم أنواعًا مختلفة من الفصول والتقنيات التي تدعم أسئلة LINQ. في مساحة الاسم هذه:

  1. تحتوي الفئة Enumerable على عامل استعلام قياسي يعمل على كائن ينفذ IEnumerable.
  2. تحتوي الفئة القابلة للاستعلام على مسؤولي الاستعلام القياسي الذين يعملون على كائن ينفذ IQueryable.

على سبيل المثال : SQL هي لغة استعلام منظمة تستخدم لحفظ البيانات واستعادتها من قاعدة البيانات. وبالمثل، LINQ عبارة عن بنية جملة استعلام منظمة. LINQ هو لغة C# الأساسية. يتم استخدامه لاستعادة البيانات من أنواع مختلفة من المصادر، مثل XML والمستندات والمجموعات وADO.Net DataSet وخدمة الويب وMS SQL Server وخوادم قواعد البيانات الأخرى.

ما هو لينك

استخدامات لينك

  1. السبب الرئيسي وراء إنشاء LINQ هو، قبل C# 3.0، كنا نستخدم حلقة for، لكل حلقة، أو مفوضين لاجتياز مجموعة لتعقب كائن معين، ومع ذلك فإن الضرر الذي يلحق بإشراك هذه الاستراتيجيات للعثور على كائن هو أنك تريد حقًا ذلك أنشئ قدرًا هائلاً من التعليمات البرمجية للعثور على كائن ممل إضافي ويجعل برنامجك أقل وضوحًا. لذا للتغلب على هذه المشكلات، تم تقديم LINQ، الذي يؤدي نشاطًا مماثلاً في عدد قليل من الأسطر ويجعل الكود الخاص بك واضحًا؛ علاوة على ذلك، يمكنك تضمين تعليمات برمجية مماثلة في مشاريع مختلفة.
  2. بالإضافة إلى ذلك، فإنه يوفر فحصًا كاملاً للفرز في وقت الترجمة. فهو يساعدنا على تمييز الأخطاء في وقت التشغيل، حتى نتمكن بلا شك من إزالتها.
  3. LINQ هي لغة واضحة ومرتبة للغاية وذات مستوى كبير من لغة SQL
  4. يمكنك أيضًا استخدام LINQ مع مصفوفة ومجموعات C#. فهو يوفر لك إرشادات أخرى للتعامل مع المشكلات القديمة بطريقة قوية.
  5. بمساعدة LINQ، يمكنك بلا شك العمل مع مصدر بيانات مثل XML وSQL والكيانات والكائنات وما إلى ذلك. يمكن أن يعمل استعلام واحد مع قاعدة البيانات، والحاجة إلى تعلم أنواع مختلفة من اللغات سبب مقنع.
  6. يدعم LINQ تعبيرات الاستعلام، والأنواع المجهولة، والمتغيرات المكتوبة ضمنيًا، وتعبيرات Lambda، ومهيئات الكائنات والمجموعة، وأساليب الامتداد.

يمكننا استخدام استعلامات LINQ بطريقتين

تتكون بنية بناء جملة استعلام LINQ من كلمات رئيسية للاستعلام مميزة في إصدار نظام .NET 3.5 أو أعلى. يتيح ذلك لمهندس البرمجيات أو المطورين إنشاء توجيهات تشبه إلى حد كبير تصميم SQL في الكود (C# أو VB.NET) دون استخدام المعدلات. وهو كذلك معروف في ضوء مسألة قواعد النطق. في LINQ، يمكنك إنشاء الاستعلام إلى سلسلة IEnumerable أو مصادر معلومات IQueryable باستخدام الاستراتيجيات التالية:

1. بناء جملة الاستعلام:

يبدأ بناء جملة لغة استعلام LINQ بالكلمة الأساسية وينتهي بالكلمة الأساسية Select أو GroupBy. بعد الكلمة الرئيسية، يمكنك استخدام أنواع مختلفة من عمليات الاستعلام القياسية مثل التجميع والتصفية وما إلى ذلك، حسب ما تحدده حاجتك. في 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: في الخطوة الثالثة، يتعين علينا إنشاء استعلام لمصدر البيانات باستخدام كلمة أساسية مثل تحديد ومن وما إلى ذلك.

 Ex: var r = from l in list where l.Contains(' Hii ') select l; 

هنا r هو متغير الاستعلام الذي يخزن نتيجة صياغة الاستعلام. يتم استخدام جملة النموذج لتحديد مصدر المعلومات، أي القائمة، حيث ينطبق الشرط على القناة، أي l.Contains('Hii') وبيان التحديد يعطي نوع الأشياء التي تم إرجاعها. علاوة على ذلك، l هو متغير الوصول.

الخطوة 4: الخطوة الأخيرة هي تنفيذ الاستعلام باستخدام لكل حلقة.

 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، يتم استخدام بناء جملة الطريقة لاستدعاء طريقة التوسيع للفئات الثابتة القابلة للإحصاء أو القابلة للاستعلام. ويسمى أيضًا بناء جملة ملحق الطريقة أو بطلاقة. على الرغم من ذلك، يتغير المترجم عمومًا عبر بناء جملة الاستعلام في بنية بناء جملة الطريقة في وقت الترجمة. يمكنه استدعاء مشغل الاستعلام القياسي مثل 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') وبيان التحديد يعطي نوع الأشياء التي تم إرجاعها. علاوة على ذلك، l هو متغير الوصول.

الخطوة 4: الخطوة الأخيرة هي تنفيذ الاستعلام باستخدام لكل حلقة.

 EX: foreach(var i in r) { Console.WriteLine(i); } 

برنامج مثال على بناء جملة الطريقة:

np.sum
 // 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); } } } 

انتاج:

ما هو لينك

مميزات لينك

  1. لا يتعين على العميل تعلم لغات استعلام جديدة لنوع بديل من تنسيق البيانات أو مصدر البيانات.
  2. يزيد من وضوح الكود.
  3. يمكن إعادة استخدام الاستعلام.
  4. إنه يوفر التحقق من نوع الكائن في وقت التجميع.
  5. فهو يوفر IntelliSense للمجموعات التقليدية.
  6. يميل إلى استخدامه مع المجموعات أو المصفوفات.
  7. يدعم LINQ الترتيب والتجميع والتصفية والفرز.
  8. إنه يجعل تصحيح الأخطاء أمرًا بسيطًا لأنه يتم تنسيقه مع لغة C#.
  9. إنه يوفر تغييرًا مباشرًا مما يشير إلى أنه يمكنك بلا شك تغيير أكثر من نوع بيانات إلى نوع بيانات آخر مثل تغيير بيانات SQL إلى بيانات XML.