بناء الجملة:
- تعبير لامدا: (المعلمات) => التعبير
- بيان Lambda: {البيان الشرطي 1 البيان 2 ...}
مثال 1:
أنشئ قائمة 'الأسمدة' التي تحتوي على خمسة سلاسل. استخدم تعبير lambda الذي يُرجع جميع السلاسل من القائمة.
استخدام نظام ؛استخدام النظام ؛
استخدام System.Collections.Generic ؛
فصل لامبدا اكسبرسيون مثال {
ثابتة عام فارغ رئيسي ( )
{
// إنشاء قائمة الأسمدة
قائمة الأسمدة = جديد قائمة ( ) ؛
اسمدة . يضيف ( اليوريا ) ؛
اسمدة . يضيف ( 'نتروجين' ) ؛
اسمدة . يضيف ( 'البوتاسيوم' ) ؛
اسمدة . يضيف ( 'ثنائي فوسفات الأمونيوم' ) ؛
اسمدة . يضيف ( 'الفوسفور' ) ؛
// استخدم LambdaExpression لتحديد جميع الأسمدة
كان نتيجة = اسمدة . يختار ( inp1 => inp1 ) ؛
foreach ( كان أنا في نتيجة )
{
وحدة التحكم . اكتب ( أنا ) ؛
}
}
}
انتاج:
توضيح:
1. قم بإنشاء قائمة بنوع السلسلة المسماة 'الأسمدة'. أضف خمس سلاسل إلى هذه القائمة.
2. استخدم تعبير لامدا لاختيار كل الأسمدة. هنا ، يتم استخدام التعبير مع عامل التشغيل 'تحديد'. التعبير inp1 => inp1. بعد ذلك ، نستخدم حلقة 'foreach' لعرض السلاسل التي يتم إرجاعها بواسطة تعبير lambda.
المثال 2:
استخدم تعبير لامدا لاختيار الأسمدة التي تحتوي على 'الفوسفات'.
استخدام نظام ؛استخدام النظام ؛
استخدام System.Collections.Generic ؛
فصل لامبدا اكسبرسيون مثال {
ثابتة عام فارغ رئيسي ( )
{
// إنشاء قائمة الأسمدة
قائمة الأسمدة = جديد قائمة ( ) ؛
اسمدة . يضيف ( اليوريا ) ؛
اسمدة . يضيف ( 'نتروجين' ) ؛
اسمدة . يضيف ( 'أورثو - فوسفات' ) ؛
اسمدة . يضيف ( 'ثنائي فوسفات الأمونيوم' ) ؛
اسمدة . يضيف ( 'الفوسفور' ) ؛
// استخدم LambdaExpression لتحديد الأسمدة التي تحتوي على - 'الفوسفات'
كان نتيجة = اسمدة . أين ( inp1 => inp1 . يتضمن ( 'فوسفات' ) ) ؛
foreach ( كان أنا في نتيجة )
{
وحدة التحكم . اكتب ( أنا ) ؛
}
}
}
انتاج:
هناك نوعان من الخيوط التي تحتوي على 'الفوسفات' فيها.
توضيح:
1. قم بإنشاء قائمة بنوع السلسلة المسماة 'الأسمدة'. أضف خمس سلاسل إلى هذه القائمة.
2. هنا ، يتم استخدام التعبير مع عامل التشغيل 'أين'. التعبير inp1 => inp1. يحتوي على ('فوسفات'). بعد ذلك ، نستخدم حلقة 'foreach' لعرض السلاسل التي يتم إرجاعها بواسطة تعبير lambda.
المثال 3:
لنحصل على قائمة (كمية_الطلب) تحتوي على ثلاثة أوامر. حدد تعبير lambda لإضافة 5 لكل طلب.
استخدام نظام ؛استخدام النظام ؛
استخدام System.Collections.Generic ؛
فصل لامبدا اكسبرسيون مثال {
ثابتة عام فارغ رئيسي ( )
{
// إنشاء قائمة الكميات
قائمة order_quantity = جديد قائمة ( ) ؛
ترتيب_كمية . يضيف ( 5 ) ؛
ترتيب_كمية . يضيف ( 7 ) ؛
ترتيب_كمية . يضيف ( 8 ) ؛
// استخدم LambdaExpression إلى 5 لكل طلب.
كان نتيجة = ترتيب_كمية . يختار ( inp1 => inp1 + 5 ) ؛
foreach ( كان أنا في نتيجة )
{
وحدة التحكم . اكتب ( أنا ) ؛
}
}
}
انتاج:
يتم تحويل القائمة [5،7،8] إلى [10،12،13].
توضيح:
1. قم بإنشاء قائمة الكميات من نوع عدد صحيح.
2. نختار الطلبات أولاً ثم نضيف 5 لكل طلب. لذلك ، يتم استخدام عامل التشغيل 'تحديد'. التعبير inp1 => inp1 + 5.
المثال 4:
قم بإنشاء مصدر بيانات قائمة من نوع الحدث (بثلاث سمات - Event_Name و Event_Status و Event_Budget) وأعد السجلات بميزانية Event_Budget التي تزيد عن 5000.
استخدام نظام ؛استخدام النظام ؛
استخدام System.Collections.G عام ؛
// أنشئ فئة باسم - 'Event_Source' مع 5 أحداث.
عام فصل مصدر_الحدث
{
عام ثابتة فارغ رئيسي ( )
{
// قائمة الأحداث
أحداث IList = جديد قائمة ( ) {
جديد حدث ( ) { اسم الحدث = 'المعسكر الفني' ، Event_Status = 'مخطط' ، Event_Budget = 10000 } و
جديد حدث ( ) { اسم الحدث = 'معسكر التسويق' ، Event_Status = 'مكتمل' ، Event_Budget = 5000 } و
جديد حدث ( ) { اسم الحدث = 'آخر' ، Event_Status = 'مخطط' ، Event_Budget = 1000 } و
جديد حدث ( ) { اسم الحدث = 'سياسة' ، Event_Status = 'مخطط' ، Event_Budget = 13000 } و
جديد حدث ( ) { اسم الحدث = 'تمويل' ، Event_Status = 'مكتمل' ، Event_Budget = 20000 } و
} ؛
// Event_Budget أكبر من 5000.
كان نتيجة = الأحداث . أين ( inp1 => inp1 . Event_Budget > 5000 ) ؛
foreach ( كان أنا في نتيجة ) {
وحدة التحكم . اكتب ( 'اسم: ' + أنا . اسم الحدث + ' حالة: ' + أنا . حالة_الحدث + ' ميزانية: ' + أنا . Event_Budget ) ؛
}
}
}
عام فصل حدث {
عام خيط اسم الحدث { يحصل ؛ تعيين ؛ }
عام خيط حالة_الحدث { يحصل ؛ تعيين ؛ }
عام int Event_Budget { يحصل ؛ تعيين ؛ }
}
انتاج:
توجد ثلاثة سجلات في قائمة 'الأحداث' بميزانية Event_Budget أكبر من 5000.
توضيح:
1. أولاً ، نقوم بإنشاء فئة 'حدث' بثلاث سمات.
2. بعد ذلك ، نقوم بإنشاء قائمة بخمسة أحداث.
3. استخدام inp1 => inp1.Event_Budget> 5000 تعبير lambda ، نختار السجلات التي تحتوي على Event_Budget أكبر من 5000.
المثال 5:
استخدم الكود السابق وقم بتغيير تعبير lambda. قم بإعادة الأحداث مع Event_Name التي تنتهي بـ 'Camp' وبالحالة Event_Status التي هي 'مخطط لها'.
// Lambda Expression - Event_Name ينتهي بـ 'Camp' و Event_Status 'مخطط لها'.كان نتيجة = الأحداث . أين ( inp1 => inp1 . اسم الحدث . ينتهي بـ ( 'معسكر' ) && inp1 . حالة_الحدث == 'مخطط' ) ؛
foreach ( كان أنا في نتيجة ) {
وحدة التحكم . اكتب ( 'اسم: ' + أنا . اسم الحدث + ' حالة: ' + أنا . حالة_الحدث + ' ميزانية: ' + أنا . Event_Budget ) ؛
}
انتاج:
لا يوجد سوى سجل واحد يفي بكلا الشرطين.
توضيح:
هنا ، نحدد شرطين في تعبير لامدا. يتم استخدام عامل التشغيل && (و) لجعل الشرطين على أنهما صحيحان. يستخدم الشرط الأول طريقة EndsWith () للتحقق مما إذا كانت السلسلة النصية تنتهي بالسلسلة المحددة. يستخدم الشرط الثاني عامل التشغيل 'Comparison' (==) للتحقق مما إذا كانت كلتا القيمتين متساويتين أم لا.
خاتمة
في C # ، يأخذ تعبير lambda التعبيرات / العبارات الشرطية كجسم بدون اسم. نحن بحاجة إلى تحديد المعلمات. ثم يتم تعيين التعبيرات لها. بشكل أساسي ، تُستخدم هذه لتصفية السجلات من مصدر البيانات المحدد ، وتحويل العناصر ، وتحديد العناصر من مصدر / تسلسل البيانات. ناقشنا في هذا الدليل الأمثلة الخمسة المختلفة التي تحدد العناصر وتصفيتها وتحولها باستخدام تعبير lambda.