Partitioning Operators في LINQ
Partitioning Operators في LINQ
في هذا الدرس، سنتعرّف على ما يُعرف بـ Partitioning Operators في LINQ، وهي دوال تُستخدم لتقسيم أو استخراج جزء معين من تسلسل البيانات بناءً على عدد أو شرط.
ما هي Partitioning Operators؟
هي دوال تُستخدم في LINQ لاستخراج جزء معين من تسلسل البيانات IEnumerable
، سواء حسب عدد معين أو شرط معين.
Take()
TakeWhile()
Skip()
SkipWhile()
1. Take()
تُستخدم لاستخراج عدد معين من العناصر من بداية التسلسل.
List<int> numbers = new List<int>() { 10, 20, 30, 40, 50 };
var result = numbers.Take(3);
foreach (var n in result)
Console.WriteLine(n);
الناتج:
10
20
30
2. TakeWhile()
تُستخدم لاستخراج العناصر من البداية طالما أن الشرط صحيح. بمجرد أن يفشل الشرط، يتوقف الأخذ فورًا.
List<int> numbers = new List<int>() { 5, 10, 15, 6, 3, 20 };
var result = numbers.TakeWhile(n => n < 15);
foreach (var n in result)
Console.WriteLine(n);
الناتج:
5
10
3. Skip()
تُستخدم لتخطي عدد معين من العناصر من البداية، ثم تُرجع باقي العناصر.
List<int> numbers = new List<int>() { 10, 20, 30, 40, 50 };
var result = numbers.Skip(2);
foreach (var n in result)
Console.WriteLine(n);
الناتج:
30
40
50
4. SkipWhile()
تُستخدم لتخطي العناصر من البداية طالما أن الشرط محقق، ثم تُرجع كل العناصر بعد أول فشل في الشرط.
List<int> numbers = new List<int>() { 5, 10, 15, 3, 20 };
var result = numbers.SkipWhile(n => n < 15);
foreach (var n in result)
Console.WriteLine(n);
الناتج:
15
3
20
مقارنة سريعة بين الدوال:
الدالة | من البداية؟ | تعتمد على | النتيجة |
---|---|---|---|
Take(n) |
✅ نعم | عدد | أول n عناصر |
TakeWhile() |
✅ نعم | شرط | أول العناصر التي تحقق الشرط |
Skip(n) |
✅ نعم | عدد | يتجاهل أول n ويرجع الباقي |
SkipWhile() |
✅ نعم | شرط | يتجاهل العناصر طالما الشرط محقق، ثم يرجع الباقي |
تعليقات
إرسال تعليق