English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

قواعد استعلام LINQ

هناك طريقتان أساسيتان لنسخ استعلام LINQ إلى مجموعة IEnumerable أو مصدر بيانات IQueryable.

  1. قواعد الاستعلام أو قواعد التعبير

  2. قواعد الاستعلام أو قواعد التعبير أو قواعد التسلسل

قواعد الاستعلام

قواعد الاستعلام تشبه لغة SQL (لغة الاستعلام الهيكلية). يتم تعريفها في كود C# أو VB.

قواعد الاستعلام LINQ:

من <م変ير النطاق> في <مجموعة IEnumerable<T> أو IQueryable<T>>
<قواعد الاستعلام القياسية > <تعبير lambda>
<تحديد أو عمليات المجموع > <شكل النتيجة>

قواعد الاستعلام LINQ تبدأ بكلمة from وتنتهي بكلمة select. إليك مثال على استعلام LINQ، يعود بمجموعة من الأحرف تحتوي على كلمة " توتوريالس ".

// 字符串集合
IList<string> stringList = new List<string>() { 
    "توتوريالس C#",
    "توتوريالس VB.NET",
    "تعلم C++",
    "MVC توتوريالس",
    "Java" 
};
// LINQ查询语法
var result = from s in stringList
            where s.Contains("Tutorials") 
            select s;

الشكل التالي يوضح هيكل لغة استعلام LINQ.

لغة استعلام LINQ

تبدأ لغة استعلام LINQ بجملة From، تتبعها Range متغير. From هيكل الجملة يشبه "From rangeVariableName in i enumerablecollection”. في اللغة الإنجليزية، هذا يعني، من كل كائن في المجموعة. يشبه foreach دائرة:foreach(Student s in studentList).

بعد جملة FROM، يمكنك استخدام مختلف عمليات الاستعلام القياسية لفرز، وفرز وتوصيل العناصر في المجموعة. هناك حوالي 50 عمليات استعلام قياسية في LINQ. في الشكل السابق، استخدمنا عمليات الاستعلام "where" (أو الجملة)، متبوعة بشرط. عادة ما تستخدم تعبير lambda لتعبير عن هذا الشرط.

لغة استعلام LINQ دائمًا تنتهي بجملة Select أو Group. جملة Select تستخدم لتشكيل البيانات. يمكنك اختيار الكائن بأكمله أو بعض الخصائص فقط. في المثال السابق، اختارنا كل عنصر نتيجة.

في المثال التالي، نستخدم لغة استعلام LINQ لاستخراج طلاب المراهقة من مجموعة Student (سلسلة).

// مجموعة الطلاب
IList<Student> studentList = new List<Student>() { 
        new Student() { StudentID = 1, StudentName = "John",  Age = 13} ,
        new Student() { StudentID = 2, StudentName = "Moin",  Age = 21 } ,
        new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 } ,
        new Student() { StudentID = 4, StudentName = "Ram" , Age = 20},
        new Student() { StudentID = 5, StudentName = "Ron" , Age = 15 } 
    };
// استعلام LINQ لاستخراج طلاب المراهقة
var teenAgerStudent = from s in studentList
                      حيث s.Age > 12 && s.Age < 20
                      select s;
// مجموعة الطلاب
Dim studentList = New List(Of Student) From {
        New Student() With {.StudentID = 1, .StudentName = "John", .Age = 13},
        New Student() With {.StudentID = 2, .StudentName = "Moin", .Age = 21},
        New Student() With {.StudentID = 3, .StudentName = "Bill", .Age = 18},
        New Student() With {.StudentID = 4, .StudentName = "Ram", .Age = 20},
        New Student() With {.StudentID = 5, .StudentName = "Ron", .Age = 15}
    }
// استعلام LINQ لاستخراج طلاب المراهقة
Dim teenAgerStudents As IList(Of Student) = (From s In studentList _
                                            Where s.Age > 12 And s.Age < 20 _
                                            Select s).ToList()

نقاط يجب تذكرها

  1. كما يُقالقواعد الاستعلاملغة استعلام SQL (لغة الاستعلام للبنية التحتية)

  2. قواعد الاستعلام تُكتب بنفس طريقةمنبداية الجملة، يمكن أن تكونSelectأوGroupByنهاية الجملة.

  3. استخدام مجموعة متنوعة من العمليات الأخرى، مثل عمليات الفلترة، والربط، والتصنيف، وعمليات الترتيب لإنشاء النتائج المطلوبة.

  4. المغيرات غير المعلنة - var يمكن استخدامها لتح Konsol LINQ.