۳ مطلب با کلمهی کلیدی «آموزش Lambda» ثبت شده است
اضافه کردن متد به LINQ
بسم الله الرحمن الرحیم
می خواهیم به تمامی لیست هایی که از نوع double ایجاد می شوند یک متد برای پیدا کردن عنصر میانی آنها بنویسیم
public static class LINQExtension
{
public static double Median(this IEnumerable<double> source)
{
if (source.Count() == 0)
{
throw new InvalidOperationException("Cannot compute median for an empty set.");
}
var sortedList = from number in source
orderby number
select number;
int itemIndex = (int)sortedList.Count() / 2;
if (sortedList.Count() % 2 == 0)
{
// Even number of items.
return (sortedList.ElementAt(itemIndex) + sortedList.ElementAt(itemIndex - 1)) / 2;
}
else
{
// Odd number of items.
return sortedList.ElementAt(itemIndex);
}
}
}
ادامه مطلب...
Linq extension method
بسم الله الرحمن الرحیم
می خواهیم یک Extesion Method مانند متدهای Linq برای Model ایی خاص بنویسیم.
دو نکته را برای نوشتم متدهای توسعه (Extension Method) باید رعایت کنید:
1- متد را باید در کلاسی بنویسید که از نوع static باشد
2- namespace شما باید با namespace کلاسی که می خواهید برای آن Extension Method بنویسید یکسان باشد
ما می خواهیم وقتی از شی DbContext مدل Active را انتخاب می کنیم مانند متد ()FirstOrDefault لینک (LINQ) یک متد برای اجرای یک دستور خاص نمایش داده شود:
public static class Extensions
{
public IQueryable<T> Active<T>(this IQueryable<T> source)
where T : YourEntityType
{
return source.Where(a => ((a.publishEnd > DateTime.Now) || (a.publishEnd == null))
&& ((a.publishStart <= DateTime.Now) || (a.publishStart == null))
&& a.active == true);
}
}
برای فراخوانی متد به صورت زیر می توانیم عمل کنیم:
var item = db.myTable.Active().SingleOrDefault(...);
آموزش Lambda
بسم الله الرحمن الرحیم
بسم الله الرحمن الرحیم
مشاهده تمامی آموزش های دوره LINQ
آموزش LINQ
در این بخش قصد دارم به معرفی عبارات لامبدا بپردازم انشالله که مفید واقع گردد.
در حالت عادی ما یک تابع را به صورت زیر تعریف می کنیم
public void Load(object parameter)
{
.....
}
این تابع دارای بخش های زیر است:
- میدان دید تابع public
- خروجی تابع void
- نام تابع load
- پارامتر ورودی تابع parameter
- بدنه تابع
حال در تابع هایی که به وسیله عبارت لامبدا تعریف می شوند بخش های زیر فقط وجود دارد:
- پارامترها
- بدنه تابع
(int x) => x + 1;
ادامه مطلب...