عبارات لامبدا در LINQ
شاید بتوان گفت که یکی از مهمترین کاربردهای عبارات لامبدا (Lambda expressions)، استفاده از آنها در متدهای LINQ باشد. همانطور که می دانید عبارت لامبدا یک نوع متد بی نام است. شکل کلی یک عبارت لامبدا به صورت زیر است :
(param1, param2, …paramN) => expr
البته عبارت لامبدا می تواند یک پارامتر هم داشته باشد :
(param1) => expr
مثالی از یک عبارت لامبدا در زیر آمده است :
(x, y) => x == y
این عبارت دو ورودی x و y را گرفته و آنهایی که با هم برابرند را بر می گرداند. با استفاده از عبارات لامبدا می توان خروجی ها را بهتر و دقیقتر فیلتر کرد. به مثال های زیر توجه کنید :
string[] names = { "Edward", "Monica", "Clara", "Jessica", "Jimmie" }; var result = names.Where(n => n.Contains("J")); foreach (var name in result) { Console.WriteLine(name); }
Jessica Jimmie
در مثال با استفاده از عبارت لامبدا در متد Where مشخص کرده ایم، که فقط عناصری از آرایه که شامل حرف J هستند نمایش داده شوند.
string[] names = { "Edward", "Monica", "Clara", "Jessica", "Jimmie" }; var result = names.Where (n => n.Contains("J")) .Select(n => n.ToUpper()); foreach (var name in result) { Console.WriteLine(name); }
JESSICA JIMMIE
و در کد بالا ابتدا با استفاده از یک عبارت لامبدا تمامی عناصری که با حرف J شروع می شوند را انتخاب و با استفاده از یک عبارت لامبدای دیگر آنها را به حروف بزرگ تبدیل کرده ایم.