C# LINQ Lambda Expressions

C Linq Lambda Expressions



ביטוי למבדה ב-C# לוקח ישירות את הביטויים/הצהרות התנאים כגוף שלו ללא שם. אנחנו צריכים לציין את הפרמטרים ואז הביטויים מוקצים לו. במהלך העבודה עם Language Integrated Query (LINQ), ייתכן שתהיה לך דרישה שתצטרך להפוך את הנתונים הקיימים במקור הנתונים או להמיר מקור נתונים אחד למקור נתונים אחר. במדריך זה נראה כיצד לסנן את הרשומות ממקור הנתונים על ידי ציון ביטוי הלמבדה ולבחור את הרשומות ממקור הנתונים.

תחביר:

  1. ביטוי למדה: (פרמטרים) => ביטוי
  2. הצהרת למדה: { משפט מותנה1 משפט2 … }

דוגמה 1:

צור את רשימת 'הדשנים' שמכילה חמישה מחרוזות. השתמש בביטוי lambda שמחזיר את כל המחרוזות מהרשימה.

באמצעות מערכת ;
באמצעות System.Linq ;
באמצעות מערכת.אוספים.גנרי ;

מעמד LambdaExpressionExample {

סטָטִי פּוּמְבֵּי בָּטֵל רָאשִׁי ( )
{

// צור רשימה של דשנים
רשימת דשנים = חָדָשׁ רשימה ( ) ;
דשנים . לְהוֹסִיף ( 'אוריאה' ) ;
דשנים . לְהוֹסִיף ( 'חַנקָן' ) ;
דשנים . לְהוֹסִיף ( 'אֶשׁלָגָן' ) ;
דשנים . לְהוֹסִיף ( 'די-אמוניום פוספט' ) ;
דשנים . לְהוֹסִיף ( 'זַרחָן' ) ;

// השתמש ב- LambdaExpression כדי לבחור את כל הדשנים
היה תוֹצָאָה = דשנים . בחר ( inp1 => inp1 ) ;
לכל אחד ( היה אני ב תוֹצָאָה )
{
לְנַחֵם . WriteLine ( אני ) ;
}

}
}

תְפוּקָה:









הֶסבֵּר:



1. צור רשימה של סוג מחרוזת בשם 'דשנים'. הוסף חמש מחרוזות לרשימה זו.

2. השתמש בביטוי למבדה כדי לבחור את כל הדשנים. כאן, הביטוי משמש עם האופרטור 'Select'. הביטוי הוא inp1 => inp1. לאחר מכן, אנו משתמשים בלולאה 'foreach' כדי להציג את המחרוזות המוחזרות על ידי ביטוי הלמבדה.





דוגמה 2:

השתמש בביטוי למבדה כדי לבחור את הדשנים הכוללים 'פוספט'.

באמצעות מערכת ;
באמצעות System.Linq ;
באמצעות מערכת.אוספים.גנרי ;

מעמד LambdaExpressionExample {

סטָטִי פּוּמְבֵּי בָּטֵל רָאשִׁי ( )
{

// צור רשימה של דשנים
רשימת דשנים = חָדָשׁ רשימה ( ) ;
דשנים . לְהוֹסִיף ( 'אוריאה' ) ;
דשנים . לְהוֹסִיף ( 'חַנקָן' ) ;
דשנים . לְהוֹסִיף ( 'אורתו - פוספט' ) ;
דשנים . לְהוֹסִיף ( 'די-אמוניום פוספט' ) ;
דשנים . לְהוֹסִיף ( 'זַרחָן' ) ;

// השתמש ב-LambdaExpression כדי לבחור את  הדשנים שכוללים - 'פוספט'
היה תוֹצָאָה = דשנים . איפה ( inp1 => inp1 . מכיל ( 'פוֹספָט' ) ) ;
לכל אחד ( היה אני ב תוֹצָאָה )
{
לְנַחֵם . WriteLine ( אני ) ;
}

}
}

תְפוּקָה:



ישנן שתי מחרוזות הכוללות 'פוספט' בהן.

הֶסבֵּר:

1. צור רשימה של סוג מחרוזת בשם 'דשנים'. הוסף חמש מחרוזות לרשימה זו.

2. כאן, הביטוי משמש עם האופרטור 'איפה'. הביטוי הוא inp1 => inp1.Contains('פוספט'). לאחר מכן, אנו משתמשים בלולאה 'foreach' כדי להציג את המחרוזות המוחזרות על ידי ביטוי הלמבדה.

דוגמה 3:

בוא תהיה רשימה (כמות_הזמנה) שמכילה שלוש הזמנות. ציין את ביטוי הלמבדה כדי להוסיף 5 לכל הזמנה.

באמצעות מערכת ;
באמצעות System.Linq ;
באמצעות מערכת.אוספים.גנרי ;

מעמד LambdaExpressionExample {

סטָטִי פּוּמְבֵּי בָּטֵל רָאשִׁי ( )
{

// צור רשימת כמויות
רשימת order_quantity = חָדָשׁ רשימה ( ) ;
כמות ההזמנה . לְהוֹסִיף ( 5 ) ;
כמות ההזמנה . לְהוֹסִיף ( 7 ) ;
כמות ההזמנה . לְהוֹסִיף ( 8 ) ;

// השתמש ב- LambdaExpression עד 5 לכל הזמנה.
היה תוֹצָאָה = כמות ההזמנה . בחר ( inp1 => inp1 + 5 ) ;
לכל אחד ( היה אני ב תוֹצָאָה )
{
לְנַחֵם . WriteLine ( אני ) ;
}

}
}

תְפוּקָה:

הרשימה [5,7,8] הופכת ל-[10,12,13].

הֶסבֵּר:

1. צור את רשימת הכמויות מסוג מספר שלם.

2. אנו בוחרים תחילה את ההזמנות ולאחר מכן מוסיפים 5 לכל הזמנה. אז, נעשה שימוש באופרטור 'בחר'. הביטוי הוא inp1 => inp1 + 5.

דוגמה 4:

צור מקור נתונים ברשימה מסוג אירוע (עם שלוש מאפיינים - שם אירוע, מצב_אירוע ותקציב_אירוע) והחזר את הרשומות עם תקציב_האירוע שהוא גדול מ-5000.

באמצעות מערכת ;
באמצעות System.Linq ;
באמצעות מערכת.אוספים.גנרי ;

// צור מחלקה בשם - 'Event_Source' עם 5 אירועים.
פּוּמְבֵּי מעמד מקור_אירוע
{
פּוּמְבֵּי סטָטִי בָּטֵל רָאשִׁי ( )
{
// רשימת אירועים
אירועי IList = חָדָשׁ רשימה ( ) {
חָדָשׁ מִקרֶה ( ) { שם אירוע = 'מחנה טכני' ,מצב_אירוע = 'מתוכנן' ,תקציב_אירוע = 10000 } ,
חָדָשׁ מִקרֶה ( ) { שם אירוע = 'מחנה שיווק' ,מצב_אירוע = 'הושלם' ,תקציב_אירוע = 5000 } ,
חָדָשׁ מִקרֶה ( ) { שם אירוע = 'אַחֵר' ,מצב_אירוע = 'מתוכנן' ,תקציב_אירוע = 1000 } ,
חָדָשׁ מִקרֶה ( ) { שם אירוע = 'פּוֹלִיטִיקָה' ,מצב_אירוע = 'מתוכנן' ,תקציב_אירוע = 13000 } ,
חָדָשׁ מִקרֶה ( ) { שם אירוע = 'לְמַמֵן' ,מצב_אירוע = 'הושלם' ,תקציב_אירוע = 20000 } ,
} ;

//תקציב_אירוע גדול מ-5000.
היה תוֹצָאָה = אירועים . איפה ( inp1 => inp1 . תקציב_אירוע > 5000 ) ;
לכל אחד ( היה אני ב תוֹצָאָה ) {
לְנַחֵם . WriteLine ( 'שם: ' + אני . שם אירוע + 'סטטוס:' + אני . מצב_אירוע + 'תקציב:' + אני . תקציב_אירוע ) ;
}
}
}

פּוּמְבֵּי מעמד מִקרֶה {
פּוּמְבֵּי חוּט שם אירוע { לקבל ; מַעֲרֶכֶת ; }
פּוּמְבֵּי חוּט מצב_אירוע { לקבל ; מַעֲרֶכֶת ; }
פּוּמְבֵּי int תקציב_אירוע { לקבל ; מַעֲרֶכֶת ; }
}

תְפוּקָה:

יש שלוש רשומות ברשימת 'אירועים' עם תקציב_האירועים גדול מ-5000.

הֶסבֵּר:

1. ראשית, אנו יוצרים מחלקה 'אירוע' עם שלוש תכונות.

2. לאחר מכן, אנו יוצרים רשימה של חמישה אירועים.

3. שימוש ב inp1 => inp1.Event_Budget > 5000 ביטוי lambda, אנו בוחרים את הרשומות עם Event_Budget גדול מ-5000.

דוגמה 5:

השתמש בקוד הקודם ושנה את ביטוי הלמבדה. החזר את האירועים עם Event_Name שמסתיים ב-'Camp' ועם Event_Status שהוא 'Planned'.

//ביטוי למבדה - שם_אירוע מסתיים ב-'Camp' ו-Event_Status הוא 'מתוכנן'.
היה תוֹצָאָה = אירועים . איפה ( inp1 => inp1 . שם אירוע . מסתיים עם ( 'מַחֲנֶה' ) && inp1 . מצב_אירוע == 'מתוכנן' ) ;
לכל אחד ( היה אני ב תוֹצָאָה ) {
לְנַחֵם . WriteLine ( 'שם: ' + אני . שם אירוע + 'סטטוס:' + אני . מצב_אירוע + 'תקציב:' + אני . תקציב_אירוע ) ;
}

תְפוּקָה:

יש רק שיא אחד שעומד בשני התנאים.

הֶסבֵּר:

כאן אנו מציינים שני תנאים בביטוי הלמבדה. האופרטור && (ו) משמש כדי להפוך את שני התנאים כ-True. התנאי הראשון משתמש בשיטת EndsWith() כדי לבדוק אם מחרוזת מסתיימת במחרוזת הנתונה. התנאי השני משתמש באופרטור 'השוואה' (==) כדי לבדוק אם שני הערכים שווים או לא.

סיכום

ב-C#, ביטוי למבדה לוקח את הביטויים/הצהרות התנאים כגוף שלו ללא שם. אנחנו צריכים לציין את הפרמטרים. לאחר מכן, הביטויים מוקצים לו. בעיקרון, אלה משמשים לסינון הרשומות ממקור הנתונים הנתון, להפוך את האלמנטים ולבחור את האלמנטים ממקור הנתונים/רצף. במדריך זה, דנו בחמש הדוגמאות השונות שבוחרות, מסננות ומשנות את האלמנטים באמצעות ביטוי למבדה.