English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

عمليات إنشاء LINQ Empty, Range, Repeat

يحتوي LINQ على عمليات إنشاء DefaultIfEmpty، Empty، Range&Repeat. ليست Empty، Range و Repeat طرق توسيع IEnumerable أو IQueryable، بل هي فقط طرق ثابتة معروفة في فئة Enumerable.  

الطريقةالوصف
Emptyيعود بجمع فارغ
Rangeمن البداية، استخدم العدد المحدد من العناصر التي تحتوي على القيم المتسلسلة لإنشاء مجموعة من نوع IEnumerable <T>.
Repeatتوليد مجموعة من نوع IEnumerable <T> تحتوي على عدد معين من العناصر وكل منها يحتوي على نفس القيمة المحددة.

Empty

Empty() مثل باقي طرق LINQ، ليست طريقة توسيع لـ IEnumerable أو IQueryable. إنها طريقة ثابتة تحتوي على كلاس Enumerable الثابت. لذلك، يمكنك طلبها مثل باقي الطرق الثابتة (مثل Enumerable.Empty<TResult>()). تستعيد طريقة Empty() مجموعة فارغة من النوع المحدد، كما هو موضح أدناه.

var emptyCollection1 = Enumerable.Empty<string>();
var emptyCollection2 = Enumerable.Empty<Student>();
Console.WriteLine("عدد: {0}", emptyCollection1.Count());
Console.WriteLine("نوع: {0}", emptyCollection1.GetType().Name);
Console.WriteLine("عدد: {0}", emptyCollection2.Count());
Console.WriteLine("نوع: {0}", emptyCollection2.GetType().Name);
الإخراج:
نوع: String[]
عدد: 0
نوع: Student[]
عدد: 0

Range

يستعيد طريقة Range() مجموعة من نوع IEnumerable <T> تحتوي على عدد معين من العناصر وتبدأ القيم من العنصر الأول.

var intCollection = Enumerable.Range(10, 10);
Console.WriteLine("عدد الإجمالي: {0}", intCollection.Count());
for(int i = 0; i < intCollection.Count(); i++)
    Console.WriteLine("القيمة، موقع المؤشر {0} : {1}", i, intCollection.ElementAt(i));
الإخراج:

عدد الإجمالي: 10
القيمة، موقع الت索引 هو 0: 10
القيمة، موقع الت索引 هو 1: 11
القيمة، موقع الت索引 هو 2: 12
القيمة، موقع الت索引 هو 3: 13
القيمة، موقع الت索引 هو 4: 14
القيمة، موقع الت索引 هو 5: 15
القيمة، موقع الت索引 هو 6: 16
القيمة، موقع الت索引 هو 7: 17
القيمة، موقع المؤشر 8 : 18
القيمة، موقع المؤشر 9 : 19

في المثال السابق، Enumerable.Range(10, 10) أنشأ مجموعة تحتوي على 10 عنصر integer، حيث تبدأ القيم من 10. يحدد الأول parameter القيمة البدائية للعناصر، والثاني parameter عدد العناصر التي يتم إنشاؤها.

Repeat

يستخدم Repeat() لإنشاء مجموعة من نوع IEnumerable<T> تحتوي على عدد معين من العناصر، كل منها يحتوي على نفس القيمة المحددة.

var intCollection = Enumerable.Repeat<int>(10, 10);
Console.WriteLine("عدد الإجمالي: {0} ", intCollection.Count());
for(int i = 0; i < intCollection.Count(); i++)
    Console.WriteLine("القيمة، موقع المؤشر {0} : {1}", i, intCollection.ElementAt(i));
الإخراج:
عدد الإجمالي: 10
القيمة، موقع المؤشر 0: 10
القيمة، موقع المؤشر 1: 10
القيمة، موقع المؤشر 2: 10
القيمة، موقع المؤشر 3: 10
القيمة، موقع المؤشر 4: 10
القيمة، موقع المؤشر 5: 10
القيمة، موقع المؤشر 6: 10
القيمة، موقع المؤشر 7: 10
القيمة، موقع المؤشر 8: 10
القيمة، موقع المؤشر 9: 10

في المثال السابق، Enumerable.Repeat<int>(10, 10) أنشئ مجموعة تحتوي على عناصر من نوع integer مكررة 100 مرة بـ 10، حيث يحدد الأول parameter القيمة لكل العناصر، والثاني parameter عدد العناصر التي يتم إنشاؤها.