متدهای توسعه یافته و کلمات کلیدی در LINQ

برای استفاده از متدهای LINQ، قبل از هر کاری ابتدا فضای نام زیر را به پروژه خود بیفزاید :

Using System.Linq;

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

نوع نام توضیح
کلمه کلیدی ascending عناصر یک مجموعه را به صورت صعودی مرتب می کند.
descending عناصر یک مجموعه را به صورت نزولی مرتب می کند.
group-by با استفاده از این عبارت می توان نتایج را به قسمت های مختلف تقسیم کرد.
let در حکم یک متغیر است که می توان نتایج حاصل از یک پرس و جو را در آن قرار داده و در قسمت های بعدی کد از آنها استفاده کرد.
orderby نحوه مرتب سازی نتایج را مشخص می کند.
select new با استفاده از این عبارت می توانیم اشیاء جدیدی از یک نوع بی نام ایجاد کنیم.
متد توسعه یافته Aggregate یک متد را به عنوان پارامتر دریافت کرده و بر اساس ان با عناصر آرایه رفتار می کند.
All اگر عناصر یک مجموعه، مشمول یک شرط شوند مقدار true و در غیر اینصورت مقدار false را بر می گرداند.
Any همه عناصر یک آرایه را که با یک شرط خاص برابری کنند، مشخص می کند.
AsEnumerable از این متد برای تبدیل یک نوع از IEnumerable<T> به نوع دیگری از IEnumerable<T> استفاده می شود. یکی از ویژگی های این عملگر، استفاده از شرط های Where در Table های LINQ to SQL می باشد، زیرا برخی از دستورات NET. داخل شرط های Table ها در LINQ to SQL قابلیت استفاده را ندارد.
AsParallel مشخص می کند که پرس و جوهای بعد از این متد باید به صورت Parallel یا موازی اجرا شوند.
Average برای به دست آوردن میانگین یک سری از اعداد به کار می رود.
Cast از این متد در مواقعی که بخواهیم عناصر یک لیست را به نوعی دیگر تبدیل کنیم استفاده می شود.
Concat این متد دو لیست را با یکدیگر ادغام می کند.
Contains این متد تعیین می کند که لیست دارای عضوی برابر با عضو تعیین شده می باشد یا خیر.
Count تعداد عناصر یک لیست یا آرایه را بر می گرداند.
DefaultIfEmpty اگر یک مجموعه تهی باشد، مقدار پیشفرض مربوط به مجموعه را بر می گرداند. مثلا اگر نوع یک مجموعه تهی int باشد، مقدار صفر را بر می گرداند.
Distinct عناصری تکراری از مجموعه را حذف می کند .
ElementAt برای به دست آوردن یک عنصر با یک اندیس خاص به کار می رود.
ElementAtOrDefault برای به دست آوردن یک عنصر با یک اندیس خاص به کار می رود.
Except عناصری از مجوعه اول را بر می گرداند که در مجموعه دوم وجود ندارند .
First اولین عنصر از مجموعه را برمی گرداند . در صورتی که مجموعه خالی باشد باعث ایجاد خطا می گردد .
FirstOrDefault همانند متد First می باشد با این تفاوت که اگر مجموعه خالی باشد یک مقدار پیش فرض با توجه به data type مربوطه بر می گرداند .می تواند برای از بین بردن استثناءها مورد استفاده قرار گیرد .
GroupBy برای گروه بندی عناصر یک مجموعه به کار می رود.
GroupJoin یک سری از عناصر را دریافت کرده و بر اساس یک کلید مشخص مرتب می کند و یک مجموعه گروه بندی شده به صورت برمی گرداند، در اینجا K کلید مرتب سازی و V مقادیر هستند.
Intersect عناصر مشترک در دو مجموعه را بر می گرداند.
Join عناصر دو مجموعه را بر اساس یک شرط خاص با هم ادغام می کند.
Last آخرین عنصر از مجموعه را برمی گرداند . اگر مجموعه دارای هیچ عنصری نباشد باعث ایجاد استثنا خواهد شد .
LastOrDefault همانند متد Last می باشد با این تفاوت که اگر مجموعه خالی باشد ، یک مقدار پیش فرض با توجه به نوع داده مبداء را بر می گرداند .
Max بزرگترین عدد یک مجموعه را بر می گرداند.
Min کوچکترین عدد یک مجموعه را بر می گرداند.
OfType عناصر یک مجموعه را بر اساس نوعی که ما می خواهیم بر می گرداند.
OrderBy از این متد برای مرتب کردن هر مجموعه ای به صورت صعودی ، بر اساس عبارت لامبدایی که به آن پاس می دهیم استفاده می شود . قطعه کد زیر نحوه مرتب کردن مجموعه را نشان می دهد.
OrderByDescending این متد برای مرتب سازی به صورت نزولی مورد استفاده قرار می گیرد ، برعکس OrderBy می باشد .
Reverse برای برعکس کردن یک مجموعه استفاده می شود . عنصر اول به آخرین عنصر و آخرین عنصر به اولین عنصر تغییر مکان داده خواهد شد و برای بقیه عناصر همین روال طی خواهد شد .
Select این متد یک متد بی نام را به عنوان پارامتر دریافت کرده و بر اساس آن عناصر یک مجموعه را بر می گرداند.
SelectMany این متد بر اساس دستور تعریف شده در پارامتر، عناصر را از مجموعه ی مورد پرس و جو انتخاب کرده و در خروجی نمایش می دهد.
SequenceEqual عناصر دو مجموعه را با هم مقایسه می کند، اگر برابر باشند مقدار true و در غیر اینصورت مقدار false را بر می گرداند.
Single در صورتی که فقط یک عنصر با شرط تعیین شده درست باشد آن عنصر از مجموعه را بر می گرداند . اگر بیش از چند عنصر با شرط ورودی ما درست باشد باعث ایجاد استثناء خواهد شد .
SingleOrDefault همانند متد single می باشد با این تفاوت که اگر هیچ عنصری در مجموعه با شرط ما پیدا نشود و یا مجموعه خالی باشد ، مقدار پیش فرض را با توجه به data type مورد نظر بر می گرداند .
Skip عناصر بعد از تعداد مشخصی از عناصر را بر می گرداند.
SkipWhile عناصر یک مجموعه که مشمول یک شرط خاص باشند را نادیده می گیرد.
Sum جمع عناصر یک لیست یا آرایه را بر می گرداند.
Take تعداد عناصر مشخصی از یک مجموعه را بر می گرداند.
TakeWhile عناصری از یک مجموعه که مشمول یک شرط خاص شوند را بر می گرداند.
ToArray این متد عناصر یک نوع IEnumerable را به آرایه تبدیل می کند.
ToDictionary این متد لیست داده شده را به نوع Dictionary<Tkey,TValue> تبدیل می کند.
ToList مجموعه موجود از نوع IEnumerable<T> را به نوع List<T> تبدیل می کند.
ToLookup این متد لیست داده شده را به نوع Lookup<Tkey,TElement> تبدیل می کند، فرق Lookup با Dictionary در این است که کلاس Lookup از نوع One-To-Many می باشد، یعنی یک کلید می تواند به چندین Element اشاره کنید.
Union برای اجتماع دو مجموعه به کار می رود.
Where عناصر یک مجموعه را بر اساس نیاز ما فیلتر می کند.
Zip یک متد به عنوان پارامتر دریافت کرده و بر اساس آن با عناصر دارای اندیس مشابه در دو آرایه رفتار می کند.