LINQ Repeat Method في C#

شرح دالة Repeat() في LINQ

في هذا الدرس، سنتعرّف على دالة Repeat() في LINQ، والتي تُستخدم لتوليد تسلسل يحتوي على نفس العنصر مكررًا عدة مرات.

تُعد `Repeat()` من دوال توليد البيانات (Generation Operators) مثل Range()، وتُستخدم في الكثير من السيناريوهات العملية.


الصيغة العامة:


IEnumerable<T> result = Enumerable.Repeat<T>(T element, int count);
  • element: العنصر الذي سيتم تكراره.
  • count: عدد مرات التكرار.
ملاحظة: إذا كانت القيمة count < 0 سيتم إطلاق استثناء من نوع ArgumentOutOfRangeException.


مثال 1: تكرار رقم معين


using System;
using System.Linq;

class Program
{
    static void Main()
    {
        var repeatedNumbers = Enumerable.Repeat(5, 4);

        foreach (var num in repeatedNumbers)
        {
            Console.WriteLine(num);
        }
    }
}


الناتج:


5  
5  
5  
5


مثال 2: تكرار قيمة نصية


var repeatedWords = Enumerable.Repeat("DotNet", 3);

foreach (var word in repeatedWords)
{
    Console.WriteLine(word);
}


الناتج:


DotNet  
DotNet  
DotNet


مثال 3: استخدام Repeat لتوليد بيانات افتراضية


var defaultUsers = Enumerable.Repeat("Guest", 5).ToList();

foreach (var user in defaultUsers)
{
    Console.WriteLine(user);
}


تخصيص القيم باستخدام Select:


var guests = Enumerable.Repeat("Guest", 3)
    .Select((value, index) => $"{value} {index + 1}");

foreach (var guest in guests)
{
    Console.WriteLine(guest);
}


الناتج:


Guest 1  
Guest 2  
Guest 3


ملاحظات مهمة:

  • Repeat() تُستخدم بكثرة في:
    • تهيئة بيانات مبدئية.
    • إنشاء بيانات تجريبية (Mock Data).
    • ملء Dropdown أو جدول بقيم placeholder.
  • تُنفذ باستخدام التنفيذ المؤجل (Deferred Execution)، أي لا يتم تنفيذها إلا عند التكرار الفعلي.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework