LINQ SkipWhile Method
شرح دالة SkipWhile() في LINQ
في هذا الدرس، سنتعلّم كيفية استخدام دالة SkipWhile()، والتي تُستخدم لتخطي العناصر من بداية التسلسل طالما أن شرطًا معينًا محقق. عند أول عنصر لا يحقق الشرط، يتم التوقف عن التخطي ويتم إرجاع باقي العناصر كما هي.
الصيغة العامة:
var result = collection.SkipWhile(condition);
condition
: دالة شرطية تحدد متى يتم تخطي العنصر.
مثال عملي:
List<int> numbers = new List<int>() { 5, 10, 15, 3, 20 };
var result = numbers.SkipWhile(n => n < 15);
foreach (var number in result)
{
Console.WriteLine(number);
}
الناتج:
15
3
20
تم تخطي5
و10
لأنهما أقل من 15.
عند الوصول إلى15
، الشرط لم يتحقق، فتوقفت عملية التخطي وتم إرجاع كل العناصر بعده كما هي.
الفرق بين Skip و SkipWhile:
الدالة | ما الذي يتم تخطيه؟ | تعتمد على عدد؟ | تعتمد على شرط؟ |
---|---|---|---|
Skip(n) |
عدد معين من العناصر من البداية | ✅ نعم | ❌ لا |
SkipWhile(condition) |
كل عنصر طالما الشرط محقق | ❌ لا | ✅ نعم |
مثال باستخدام كائنات:
public class Product
{
public string Name { get; set; }
public int Price { get; set; }
}
List<Product> products = new List<Product>()
{
new Product() { Name = "Pen", Price = 5 },
new Product() { Name = "Pencil", Price = 10 },
new Product() { Name = "Notebook", Price = 25 },
new Product() { Name = "Laptop", Price = 800 }
};
var result = products.SkipWhile(p => p.Price < 30);
foreach (var product in result)
{
Console.WriteLine(product.Name);
}
الناتج:
Notebook
Laptop
ملاحظات مهمة:
- إذا كانت كل العناصر تحقق الشرط → سيتم إرجاع تسلسل فارغ.
- إذا كان أول عنصر لا يحقق الشرط → يتم إرجاع كل العناصر دون تخطي.
- بعد أول عنصر يفشل في الشرط، يتم إرجاع كل ما بعده دون فحص.
تعليقات
إرسال تعليق