آیا میخواهید از اکانت خود خارج شوید؟

بله

پر کاربرد ترین متود های لامبدا(Lambda) در سی شارپ

پر کاربرد ترین متود های لامبدا(Lambda) در سی شارپ

اگر شما برنامه نویس باشید برای کار کردن با لیست ها و یا دیتابیس ساده ترین روش استفاده کردن از متود های لامبدا است. در این مقاله از باگ لند ما با معرفی و آموزش پر کاربرد ترین متود های لامبدا در خدمت شما هستیم. تا انتها با ما همراه باشید.

Lambda چیست ؟

 

در بیشتر زبان های برنامه نویسی می توان از Lambda استفاده کرد Lambda یک نوع anonymous functions (توابع ناشناس) هست که سادگی کد رو به ارمغان میاره و در واقع باعث میشه کد ساده بشه بدون اینکه یک نامی برای Function قرار دهیم می توانیم آن را ایجاد کنیم و حتی مقدار برگشتی از آن نیز داشته باشیم در واقع نوع کوتاه شده دستورات بلند بالا را می توان دستورات یا استاندارد Lambda دانست به این شکل که شما می توانید در چندین خط کوتاه کار چند صد خط کد را ساده سازی کنید و در واقع یک نوع concept برنامه نویسی است.
Lambda نام های دیگر مانند Closures, Anonymous Functions و Blocks دارد.
برخی از زبان هایی که از concept لامبدا (Lambda) استفاده می کنند عبارتند از :

  • Python
  • JavaScript
  • Swift
  • Scheme
  • Java
  • C#
  • PHP
  • و…

برخی از مزایای Lambda عبارتند از :

  • کاهش کد نویسی
  • خوانایی بهتر
  • قابل اطمینان تر
  • ویرایش سریع لامبدا
  • پیشتبانی از همه چیز ! (جمع ضرب و کلی کارهای پیشرفته دیگر)

!: منبع این بخش: programchi.ir

پر کاربرد ترین متود های لامبدا

در ادامه با معرفی پر کاربرد ترین متود های لامبدا در سیشارپ میپردازیم:

Where 

با دستور Where  ما میتوانیم نتیجه های جستجو رو محدود کنیم یا در واقع از دستورات شرطی استفاده کنیم. به این مثال توجه کنید:

ٌWebsiteList.Where(w=> w.websitename == "BugLand")

خب ما در این مثال وارد لیست وبسایت ها شدیم (WebsiteList) و W را به عنوان نماینده دستور Where فرستادیم داخل متود و در متود هم گفتیم وبسایتی که نام آن BugLand باشد پیدا کن.

Single & SingleOrDefult

همینطور که از ظاهر دستور پیداست این متود دنبال یک موجودیت در لیست میگردد. اما فرق Single با SingleOrDefult چیست؟ خب وقتی شما از دستور Single استفاده میکنید مطمعن هستید که چنین چیزی در دیتابیس به تعداد 1 واحد موجود است و با این دستور اون رو فراخانی میکنید اما در SingleOrDefult اگر موجودیت مورد نظر شما موجود نبود Null برمیگردونه و برنامه رو متوقف نمیکنه. به این مثال ها توجه کنید:

websiteList.Single(s=> s.sitename == "BugLand")

websiteList.SingleOrDefult(s=> s.sitename == "BugLand")

همونطور که مشاهده میکنید در ظاهر کار چیزی فرق نکرد فقط دستور اول اگر موجود نباشد یا 2 تا موجود باشد برنامه متوقف میشود اما در دومی فقط Null برمیگرداند.

First & FirstOrDefult

این دستور هم درست مثل دستور بالا عمل میکند اما با این تفاوت که وقتی شما از این دستور استفاده میکنید مطمعن هستید که 1 واحد یا بیشتر از یک موجودیت در دیتابیس موجود است و شما دنبال اولین آیتم میگردید. درست مثل بالا دستور First اگر مشکلی ایجاد شود برنامه را متوقف میکند اما FirstOrDefult فقط Null برمیگرداند.

OrderBy & OrderByDescending

این دستورات برای مرتب کردن لیست ها است . دستور OrderBy لیست از کوچک به بزرگ و OrderByDescending از بزرگ به کوچیک مرتب میکند. به مثال ها نوجه کنید:

 

websiteList.OrderBy(s=> s.sitename)

websiteList.OrderByDescending(s=> s.sitename)

در مثال بالا ما لیست را بر اساس نام وبسایت ها مرتب کردیم.

Find

همونطور که از اسم این متود پیداست از Find برای پیدا کردن یک موجودیت استفاده میکنیم اما با این تفاوت که این متود روی کلید های اصلی کار میکند و در ورودی فقط یک int دریافت میکند و موجودیتی با ایدی وارد شده را برمیگرداند و اگر موجودیتی با این آی دی پیدا نکرد برنامه متوقف میشود پس در این جور موارد انتخاب منطقی تر SingleOrDefult است. به مثال زیر توجه کنید:

websiteList.Find(2)

خب ما در دستور بالا موجودیتی با ای دی 2 را دریافت کردیم.

Take & Skip

به صورت عامیانه Skip به معنای رد کردن و Take به معنای گرفتن است. شما ممکن است 2000 واحد موجودیت داشته باشید و برای گرفتن 5 تا از میانه این لیست شما میتوانید از دستور زیر استفاده کنید:

websiteList.OrderByDescending(s=> s.id).skip(1000).take(5)

ما در دستور بالا ابتدا لیست را از پایین به بالا مرتب کردیم و بعد از پریدن از روی 1000 موجودیت 5 موجودیت را دریافت کردیم.

Any

این دستور برای سوال کردن از لیست است برای مثال: "آیا اسم باگ لند در لیست موجود است؟" و جواب دستورات را با True و False جواب میدهد. به این مثال توجه کنید:

websiteList.Any(a=> a.WebsiteName == "BugLand")

در مثال بالا سوال کردیم که وبسایتی با اسم BugLand در این لیست موجود است یه نه؟

مثال کلی

حالا مثالی کلی از ترکیب بیشتر این متودها را باهم میبینیم:

var test = context.websites.OrderBy(o=> o.Name).Skip(10).Take(10).Find(2)

در دستور بالا ما به دیتابیس و تیبل websites رفتیم و ابتدا بر اساس نام، لیست را مرتب کردیم و بعد از پریدن از روی 10 آیتم 10 آیتم را گرفتیم و در این 10 تا جستجو کردیم وبسایتی که id آن برابر با 2 است و این موجودیت به دست آمده را در یک متغیر به نام test ریختیم.

 

به همین سادگی ما با پر کاربرد ترین دستورات لامبدا آشنا شدیم. امیدوارم به کارتون بیاد. اگر شما هم دستورات پر کاربرد بیشتری میشناسید در بخش کامنت ها با ما درمیون بگذارید.

لینک کوتاه مقاله : https://BugLand.ir/A/351