صياغة الاستعلام مقابل صياغة الأساليب
اكتب LINQ نفسها بصياغة الاستعلام أو الأساليب؛ وتعرّف إلى ترجمة المصرّف ومتى تختار كل نمط.
صياغة الاستعلام مقابل صياغة الأساليب درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 3 دروس في المجموع.
صيغتان
وجهان لـ LINQ:
- صيغة الأساليب: xs.Where(...).Select(...)
- صيغة الاستعلام: from x in xs where ... select ...
- الصيغتان متكافئتان في معظم العوامل.
صيغة الأساليب
تربط صيغة الأساليب أساليب الامتداد مثل Where وSelect في سلسلة.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "dog", "tiger", "ant", "eagle" };
var result = words
.Where(w => w.Length >= 4)
.Select(w => w.ToUpper());
foreach (string w in result) Console.WriteLine(w);
}
}
صيغة الاستعلام
تُقرأ صيغة الاستعلام مثل SQL: from وwhere وselect. ويحوّلها المصرّف إلى استدعاءات أساليب.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "dog", "tiger", "ant", "eagle" };
var query =
from w in words
where w.Length >= 4
select w.ToUpper();
foreach (string w in query) Console.WriteLine(w);
}
}
الترتيب بالطريقتين
تدعم الصيغتان الترشيح والترتيب والإسقاط، وتنتجان النتائج نفسها.
using System;
using System.Linq;
public sealed class City
{
public string Name;
public int Pop;
public City(string name, int pop) { Name = name; Pop = pop; }
}
public class Program
{
public static void Main(string[] args)
{
City[] cities = new City[]
{
new City("Rome", 2873000),
new City("Oslo", 634000),
new City("Riga", 605000),
new City("Rio", 6748000)
};
// Method
var m = cities
.Where(c => c.Pop >= 700000)
.OrderBy(c => c.Name)
.Select(c => c.Name);
// Query
var q =
from c in cities
where c.Pop >= 700000
orderby c.Name ascending
select c.Name;
foreach (string name in m) Console.WriteLine(name);
Console.WriteLine("---");
foreach (string name in q) Console.WriteLine(name);
}
}
مزج الصيغ
لا يملك كل عامل كلمةً مفتاحية في صيغة الاستعلام. ومن الشائع مزج الصيغ: كتابة استعلام ثم استدعاء Count أو Skip أو Take أو ThenBy.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 5, 3, 9, 1, 7, 2, 8 };
// Query + method mix: query part, then Count() method
var q =
from n in data
where n > 3
select n;
int howMany = q.Count(); // no query keyword for Count
Console.WriteLine("Count >3 = " + howMany);
// Paging usually uses method syntax
var page = data.OrderBy(n => n).Skip(2).Take(3);
foreach (int x in page) Console.WriteLine(x);
}
}
متى تستخدم كل صيغة
إرشادات:
- استخدم صيغة الأساليب للسلاسل القصيرة وعندما لا تتوفر للعوامل كلمات مفتاحية في صيغة الاستعلام.
- استخدم صيغة الاستعلام عندما تكون أوضح للترشيح أو الترتيب متعدد الخطوات.
- امزج بينهما عند الحاجة؛ فهما متكافئتان.
الحقيقة حول الاستعلام والأساليب
مراجعة
مراجعة: صيغة الاستعلام وصيغة الأساليب طريقتان لعرض LINQ نفسها. اختر الصيغة الأسهل قراءة، وامزج بينهما عندما لا تتوفر للعوامل كلمات مفتاحية في صيغة الاستعلام.
تعلم C# مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 93
- الدروس
- 346
الأسئلة الشائعة
هل درس «صياغة الاستعلام مقابل صياغة الأساليب» مجاني؟
نعم — نص درس «صياغة الاستعلام مقابل صياغة الأساليب» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 3 دروس في المجموع.
ماذا ستتعلم في «صياغة الاستعلام مقابل صياغة الأساليب»؟
اكتب LINQ نفسها بصياغة الاستعلام أو الأساليب؛ وتعرّف إلى ترجمة المصرّف ومتى تختار كل نمط. تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «صياغة الاستعلام مقابل صياغة الأساليب»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مسارات IEnumerable والتنفيذ المؤجل
- Select وWhere وOrderBy وTake/Skip
- صياغة الاستعلام مقابل صياغة الأساليب