لمحة عن LINQ: Where وSelect وOrderBy وTake/Skip؛ التنفيذ المؤجل
أنشئ خطوط معالجة صغيرة لـ LINQ على IEnumerable : صفِّ باستخدام Where، وحوّل باستخدام Select، ورتّب باستخدام OrderBy، وتعلّم الفرق بين التنفيذ المؤجل وتجسيد النتائج.
لمحة عن LINQ: Where وSelect وOrderBy وTake/Skip؛ التنفيذ المؤجل درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 3 دروس في المجموع.
نظرة عامة على LINQ
الهدف: استخدم مسارات LINQ صغيرة لتصفية البيانات وتحويلها وترتيبها.
- Where (تصفية)
- Select (تحويل)
- OrderBy وTake/Skip
- التنفيذ المؤجل و& تحويل النتائج إلى مجموعة
Where + Select
سلسِل Where (التصفية) ثم Select (التحويل). واقرأ المسار من اليسار إلى اليمين.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 1, 2, 3, 4, 5, 6 };
// Filter even numbers, then square them
var query = data.Where(x => x % 2 == 0)
.Select(x => x * x);
foreach (int n in query)
{
Console.WriteLine(n); // 4, 16, 36
}
}
}
OrderBy + Take
رتّب باستخدام OrderBy (وThenBy)، وحدّد العدد باستخدام Take.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] names = new string[] { "Zoe", "Ada", "Alan", "Bob" };
var top2 = names.OrderBy(s => s.Length) // shortest first
.ThenBy(s => s) // tie-breaker
.Take(2);
foreach (string s in top2)
{
Console.WriteLine(s); // Ada, Bob
}
}
}
الإسقاط (النوع المجهول)
يمكن لـSelect إنشاء كائنات مجهولة لتغيير البنية بسرعة (Word, Length).
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "map", "filter", "reduce" };
var info = words.Select(w => new { Word = w, Length = w.Length });
foreach (var x in info)
{
Console.WriteLine(x.Word + " (" + x.Length + ")");
}
}
}
التنفيذ المؤجل
المؤجل: يُنفّذ الاستعلام عند التكرار عليه. وتؤثر التغييرات التي تطرأ على المصدر قبل التعداد في النتائج.
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3 };
var q = numbers.Where(x => x > 1); // not executed yet
numbers.Add(4); // modify source before enumeration
foreach (int x in q) // executes here
{
Console.WriteLine(x); // 2, 3, 4
}
}
}
تحويل النتائج والصياغة
استخدم ToList/ToArray لتنفيذ النتائج وتخزينها. وصياغة الاستعلام طريقة أخرى لكتابة المسار نفسه.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 3, 1, 2 };
// Method syntax + materialize
var sorted = data.OrderBy(x => x).ToList(); // executes now
data[0] = 100; // will not affect 'sorted' (already materialized)
foreach (int n in sorted) { Console.WriteLine(n); } // 1,2,3
// Query syntax (equivalent)
var query =
from x in data
where x < 50
select x * 2;
foreach (int n in query) { Console.WriteLine(n); } // 2,4
}
}
معنى التنفيذ المؤجل
خلاصة
الخلاصة: أنشئ مسارات باستخدام Where وSelect وOrderBy وTake/Skip. يتميز LINQ بـالتنفيذ المؤجل—حوّل النتائج إلى مجموعة باستخدام ToList/ToArray عندما تحتاج إلى نتائج ثابتة.
الأسئلة الشائعة
هل درس «لمحة عن LINQ: Where وSelect وOrderBy وTake/Skip؛ التنفيذ المؤجل» مجاني؟
نعم — نص درس «لمحة عن LINQ: Where وSelect وOrderBy وTake/Skip؛ التنفيذ المؤجل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 3 دروس في المجموع.
ماذا ستتعلم في «لمحة عن LINQ: Where وSelect وOrderBy وTake/Skip؛ التنفيذ المؤجل»؟
أنشئ خطوط معالجة صغيرة لـ LINQ على IEnumerable : صفِّ باستخدام Where، وحوّل باستخدام Select، ورتّب باستخدام OrderBy، وتعلّم الفرق بين التنفيذ المؤجل وتجسيد النتائج. تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «لمحة عن LINQ: Where وSelect وOrderBy وTake/Skip؛ التنفيذ المؤجل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المصفوفات والتقطيع وList وDictionary
- أنماط foreach ومهيئات المجموعات
- لمحة عن LINQ: Where وSelect وOrderBy وTake/Skip؛ التنفيذ المؤجل