a

ABLY مقالات و مطالب مجموعه

صفحه اصلی / ABLY مقالات و مطالب مجموعه

بسم الله الرحمن الرحیم

 

می خواهیم به تمامی لیست هایی که از نوع 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)
        {
            //

بسم الله الرحمن الرحیم

 

مشاهده تمامی آموزش های دوره LINQ

آموزش LINQ

بخش هفتم

LINQ

در این بخش تگ های اتصال لینک را آموزش خواهم داد

Join operators

join

برای متصل کردن دو شی یه یکدیگر از متد join استفاده می کنیم. مثال:

var query = from c in customers join o in orders on c.CustomerID equals o.CustomerID
select new {FullName = c.Name + " " +
c.Family ,
c.CustomerID ,
o.OrderDate ,
TotalOrder = o.Total
};

بسم الله الرحمن الرحیم

 

مشاهده تمامی آموزش های دوره LINQ

آموزش LINQ

بخش ششم

LINQ

در این بخش تگ های انتخابی لینک را آموزش خواهم داد

Element opertators

 

ElementAt

عنصر واقع در یک اندیس مشخص  شده در یک مجموعه را برمی گرداند.  


var query = SampleList.ElementAt(4);

ElementAtOrDefault

عنصر واقع در یک اندیس مشخص در یک مجموعه را برمی گرداند و یا اگر اندیس خارج از دامنه باشد یک مقدار پیش فرض را برمی گرداند.

بسم الله الرحمن الرحیم

 

مشاهده تمامی آموزش های دوره LINQ

آموزش LINQ

بخش پنجم

LINQ

در این بخش تگ های تولیدی لینک را آموزش خواهم داد

Generation Empty

Range

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



// Generate a sequence of integers from 1 to 10
// and then select their squares.
IEnumerable squares = Enumerable.Range(1, 10).Select(x => x * x);
foreach (int num in squares)
   Console.WriteLine(num);

/*
This code produces the following output:

بسم الله الرحمن الرحیم

 

مشاهده تمامی آموزش های دوره LINQ

آموزش LINQ

بخش چهارم

LINQ

در این بخش عملگرهای کمیت سنج  و عملگر های دسته بندی را معرفی خواهم کرد

 

Quantifier

 

All

تمام عناصر یک مجموعه را بررسی و در صورت صحیح بودن شرط برای همه مقادیر، مقدار true بر می گرداند.


List<int> SampleList1 = new List<int>() { 1, 3, 2, 3, 1, 8, 13 };
bool query = SampleList1.All( c => ((c % 2) == 0));
Console.WriteLine(query);
//output
//False

بسم الله الرحمن الرحیم

 

مشاهده تمامی آموزش های دوره LINQ

آموزش LINQ

بخش دوم

LINQ

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

 

 

منباب اطلاع: شما با استفاده از لینک می توانید بر روی نوع های جنریک های مختلف کوئری بزنید مثال:


IEnumerable<Customer> customerQuery = from cust in customers where cust.City == "London" select cust;
foreach (Customer customer in customerQuery)
{
Console.WriteLine(customer.LastName + ", " + customer.FirstName);
}

بحثی در لینک وجود دارد به نام اجرای با تعویق، در واقع به این معنی است که هنگامی که شما یک دستور لنیک را می نویسید آن را فقط ایجاد می کنید و وقتی آن را با foreach می خوانید در آن زمان اجرا می کنید. متغییر پرس وجو هرگز نتایج را نگهداری نمی کند یعنی اگر شما یک دستور را بر روی پایگاه داده اجرا کنید و پایگاه داده دائما تغییر کند نتایج شما هم به ازای هر بار اجرا شدن (منظور از اجرا شدن مثلا همان دستور foreach است) نتایج متفاوتی خواهد داشت.

بعضی دستورات لینک صریحا اجرا می شوند مثل First و Average ،Max ،Count چون باید اجرا شوند تا بتوانند نتیجه را مشخص کنند و این نوع دستورات یک مقدار بر می گرداند به این عملگر ها، عملگرهای تجمعی می گویند.

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس