a

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

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

جستجو یک لیست در عناصر لیست دیگر

روش های زیادی برای انجام یک کار وجود دارد و در بسیاری از مواقع تمامی این روش ها شما را به مقصودتان می رساندد اما طبیعتا همه ی آنها روش  درست نیستند. یکی از موارد زیادی که ممکن است برای شما نیز اتفاق بیافتد جستجو کردن یک لیست از اطلاعات درون یک لیست دیگر است طبیعتا اولین راه حل نوشتن یک حلقه (f

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

 

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

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

Strongly typed

زبان های Strongly typed به شما اجازه نمی دهند که از یک نوع به نام یک نوع دیگر استفاده کنید. مثلا string به int

در Strongly typed به صورت اتوماتیک یک نوع به نوع دیگر تبدیل نمی شود. مثلا در زبان Perl می توانید یک رشته

شامل "123" در یک numeric قرار دهید و این به صورت اتوماتیک تبدیل به 123 می شود اما زبان های strongly typed این کار را انجام نمی دهند مثلا python یک زبان strongly typed است.

طبیعتا خطاهای زیادی را در هنگام کار کردن با سی شارپ مخصوصا LINQ در ارتباط با strongly typed مشاهده کردید:

مثال

var answer = 1 * "1";

این دستور اجرا نمی شود، بلکه شما باید خودتان به صورت صریح تبدیل نوع را انجام دهید.
اما در PHP دستور زیر اجرا می شود:

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

 

مشاهده تمامی آموزش های دوره 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