کلمه LINQ مخفف عبارت «Language Integrated Query» به معنای زبان پرسوجوی یکپارچه است. LINQ یکی از ویژگیهای سی شارپ است. هر توسعهدهندهای باید با این تکنولوژی آشنا باشد. این ویژگی به برنامه نویسان کمک میکند به روشی ساده و قابل درک در میان دادهها جستوجو کنند. سینتکس LINQ به دقت مطابق با سینتکس سی شارپ ساخته شده است. توسعهدهندگان سی شارپ با کمک LINQ میتوانند به شکل مستقیم از درون کدهای خود با مجموعه دادههای پیچیده تعامل کنند. در واقع توسعهدهندگان میتوانند کوئریهایی شبیه به کوئریهای SQL بنویسند و با پایگاههای داده تعامل کنند.

در این مطلب از مجله فرادرس، با مفهوم LINQ در سی شارپ آشنا شدهایم. دلیل استفاده از LINQ، انواع آن در سی شارپ، سینتکس LINQ و مثالهای مختلفی را بررسی کردهایم. هم چنین مزایای استفاده از LINQ را هم به صورت خلاصه و مفید بیان کردیم.
LINQ در سی شارپ چیست؟
LINQ در زبان سی شارپ، ساخته شده تا کار با دادهها را سادهتر کند. LINQ امکان تعامل آسان با مجموعههایی مانند لیستها و پایگاههای داده فراهم کرده است. به این منظور کدهای ساده و قابل درکی را برای فیلتر کردن، مرتب کردن و کار بر روی دادهها به وجود آمدهاند. با کمک این ابزار میتوانیم انواع داده را با روش یکسانی مدیریت کنیم. کوئریهای نوشته شده با LINQ، هم کوتاهتر هستند، هم نوشتنشان راحتتر است و هم امکانات بیشتری برای مدیریت دادهها فراهم میکنند.
سینتکس استفاده از LINQ در سی شارپ
دو روش کلی برای نوشتن سینتکس LINQ در سی شارپ وجود دارد.
- «سینتکس کوئری» (Query Syntax)
- «سینتکس متد» (Method Syntax)
سینتکس کوئری
این سینتکس، شبیه به کوئریهای SQL است. معمولا افرادی که با SQL آشنایی دارند، در زمان کار با این سینتکس احساس راحتی بیشتری میکنند. در کادر زیر نمونهای از سینتکس این روش را مشاهده میکنید.
سینتکس متد
این سینتکس از فراخوانی متدها و عبارتهای لامبدا استفاده میکند. انعطافپذیری این روش بیشتر از سینتکس کوئری است. از بعضی جهات هم قدرت بیشتری دارد. در کادر زیر، نمونه سادهای از سینتکس متد را نوشتهایم.
انواع LINQ در سی شارپ
برای سادهتر شدن کار با انواع دادهها، چند نوع مختلف از LINQ توسعه داده شدهاند. در این مطلب، پنج مورد از رایجترین آنها را معرفی کردهایم.
- LINQ to Objects
- LINQ to SQL
- LINQ to Entities
- LINQ to XML
- LINQ to DataSet

LINQ در سیشارپ به برنامه نویسان کمک میکند که به شکل سادهتری با دادهها کار کنند. یعنی اینکه برنامه نویسان میتوانند عملیات جستوجو، فیلترینگ و مرتبسازی را با استفاده از عبارات شبیه به SQL بر روی دادهها، انجام دهند. برای یاد گرفتن تکنیک مرتبسازی داده میتوانید فیلم رایگان آموزش مرتب سازی داده ها با LINQ در سی شارپ و بهبود کدهای C# را از فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک این فیلم را در پایین نیز قرار دادهایم.
در ادامه مطلب تمام LINQ-های بالا را یک به یک، همراه با مثال، معرفی کردهایم.
LINQ to Objects
«LINQ to Objects» اجرای کوئریهای مختلف را بر روی مجموعههای موجود در حافظه مانند آرایهها، لیستها و دیکشنریها آسانتر میکند. برای انجام این عملیات باید از سینتکس LINQ استفاده کنیم. LINQ to Objects برای مرتبکردن، فیلتر کردن و کار با دادههایی کاربرد دارد که از قبل در حافظه نرمافزار نگهداری شدهاند.
مثالهای پایین درباره استفاده از تکنیک LINQ برای کار با مجموعه دادههای درونی در زبان سی شارپ هستند.
کار با مجموعه داده
در این بخش ، مثال سادهای را درباره کار با دادههای ذخیره شده در لیستهای سی شارپ، بررسی کردهایم.
در کوئری بالا با استفاده از LINQ تمام میوههایی را فیلتر کردهایم که نام آنها با حرف a شروع میشود. سپس اطلاعات جمعآوری شده را در کنسول چاپ کردیم.
فیلتر کردن داده ها با Where
برای فیلتر کردن دادهها میتوانیم از متد Where نیز استفاده کنیم. این متد «تابع شرطی» (Predicate) را بر روی همه عناصر مجموعه اجرا میکند. در نهایت فقط عناصری را برمیگرداند که شرط مشخص شده برای آنها درست باشد.
کد بالا فهرستی از میوهها را جدا میکند. سپس فقط میوههایی را چاپ میکند که طول اسمشان بیشتر از 5 حرف است.

مرتب سازی دادهها با OrderBy و ThenBy
در LINQ به سادگی میتوانیم با استفاده از عبارتهای OrderBy و ThenBy دادهها را مرتب کنیم.
عبارت OrderBy عناصر را بر اساس کلید مشخص شده، مرتب میکند. عبارت ThenBy هم شرط دومی را برای مرتبسازی دادهها مشخص میکند. در واقع، دادههایی که با کمک شرط OrderBy قابل مرتبسازی نباشند با توجه به شرط ThenBy مرتبسازی میشوند.
استخراج داده با کمک عبارت Select
عبارت Select برای انتخاب دادهها و ساختن شکل جدیدی از آنها استفاده میشود. برای مثال، میتوانیم بعضی از عنصرهای مجموعه را انتخاب کنیم. سپس آنها را تغییر داده و در جای جدیدی ذخیره کنیم.
LINQ to SQL
نوشتن کوئری در LINQ باعث شده کار کردن با پایگاه داده SQL Server سادهتر شود. LINQ جدولهای پایگاه داده را به شیء در سی شارپ تبدیل میکند. در نتیجه میتوانیم مانند SQL، کوئری بنویسیم و به دادهها دسترسی داشته باشیم.
در «LINQ to SQL»، سی شارپ با تبدیل کردن کوئریهای LINQ به دستورهای اس کیو ال دسترسی به پایگاه داده را آسان کرده است. زیرا همه دستورات SQL برای کار با پایگاههای داده تعریف شدهاند. در ادامه این بخش، چند مثال مختلف را درباره LINQ to SQL بررسی کردهایم.
راهاندازی LINQ to SQL
برای استفاده از قواعد LINQ بر روی پایگاه داده SQL، باید کلاس دادهای از نوع DataContext را به کار ببریم. این کلاس، چند ویژگی مهم دارد.
- نشاندهنده پایگاه داده است.
- کلاس DataContext ارتباط بین سی شارپ و پایگاه داده را مدیریت میکند.
- DataContext جدولهای پایگاه داده را با کلاسهای نوشته شده در کدها یکپارچه میکند.
در کد زیر، روش تعریف کلاس DataContext را نوشتهایم.
جستوجو بر روی اطلاعات پایگاه داده
LINQ to SQL به توسعهدهندگان کمک میکند تا برای جستوجو در پایگاه داده با استفاده از سینتکس LINQ، کوئری بنویسند.
کد بالا به دنبال مشتریهایی در پایگاه داده میگردد که در شهر لندن «London» سکونت دارند. سپس اطلاعات بدست آمده را در کنسول سی شارپ چاپ میکند.
افزودن، بهروزرسانی و حذف دادهها
با کمک LINQ to SQL میتوانیم تمام عملیات CRUD را از درون کدهای سی شارپ بر روی پایگاه داده اعمال کنیم.
کدهای بالا به سه بخش برای افزودن، بهروزرسانی و حذف داده از دیتابیس تقسیم شدهاند. در خطوط ابتدای کد، مشتری جدیدی با نام John Doe و شهر New York به پایگاه داده اضافه کردهایم. سپس شهر همان مشتری را به Los Angeles تغییر دادیم. در خطوط آخر کد هم همان مشتری را از پایگاه داده حذف کردیم.

LINQ to Entities
«LINQ to Entities» جداول پایگاه داده را به عنوان اشیاء و کلاسهای سی شارپ، نمایش میدهد. با این روش میتوانیم بین پایگاههای داده و «Entity Framework» ارتباط برقرار کنیم. در نتیجه Entity Framework هم میتواند بر روی پایگاه داده کوئری بزند. LINQ to Entities از طریق کمک به برنامه نویس برای ساختن کوئریهای LINQ امکان تعامل شیءگرایانه با پایگاه داده را فراهم میکند.
مثالی درباره استفاده از LINQ to Entities
در این بخش از مطلب، پایگاه داده سادهای را برای ارتباط با Entity Framework تعریف کردهایم.
در مثال اول، اطلاعات تمام دانشجویانی را بدست آوردهایم که متولد سال 1984 هستند.
در پایین کوئری مربوط به پیدا کردن اطلاعات تمام دانشجویان خانم متولد سال 1984 به بعد را نوشتهایم.
LINQ to XML
«LINQ to XML» به توسعهدهندگان برای خواندن و تغییردادن فایلهای XML کمک میکند. این ابزار، روش خاصی برای دسترسی به دادهها است. در این روش به فایلهای XML مانند گروهی از اشیا نگاه میکنیم. در نتیجه کار کردن با فایلهای XML بسیار سادهتر میشود.
برای کار بر روی دادههای XML باید فضای نام System.Xml.Linq را به محیط کدنویسی خود اضافه کنیم. این روش به توسعهدهندگان کمک میکند که به شکل بسیار راحتتری در فایلهای XML داده ایجاد کنند. همچنین میتوانند با استفاده از کوئری با این دادهها تعامل کنند.
جستوجو در دادههای XML
در کادر زیر، مثال سادهای را درباره کوئری نویسی بر روی اسناد XML و با استفاده از LINQ بررسی کردهایم.
در کدهای بالا، فایلی به نام books.xml را در برنامه باز کردهایم. سپس درون فایل به دنبال کتابهایی با قیمت بیشتر از 20 واحد گشتیم. در نهایت هم نام کتاب را همراه با قیمت در خروجی چاپ کردیم.

تغیییر دادن دادههای XML
با کمک LINQ to XML تغییر دادن دادههای ذخیره شده در فایلهای XML سادهتر شده است. در کد زیر، مثالی را درباره تغییر دادن یا بهروزرسانی محتوی XML بررسی کردهایم.
در کدهای بالا ابتدا فایل books.xml را باز کردهایم. سپس کتابی را با نام C# Programming پیدا کردیم. قیمت این کتاب را به 30 واحد تغییر داده و اطلاعات جدید را در فایلی به نام updated_books.xml ذخیره کردیم.
LINQ To Dataset
«LINQ To Dataset» به توسعهدهندگان کمک میکند تا کوئریهایی را بر روی اشیاء «DataSet» و «DataTable» اجرا کند. این اشیاء معمولا دادههایی را نگهمیدارند که از پایگاه داده آمدهاند.
با کمک LINQ به سادگی میتوانیم دادههای ذخیره شده در حافظه را فراخوانی کنیم. همچنین میتوانیم عملیات متنوعی را بر روی این دادهها اجرا کنیم. حتی وقتی به پایگاه داده هم متصل نباشیم، باز هم LINQ میتواند با دادههای موجود بر روی حافظه کار کند.
استفاده از LINQ to Dataset برای جستوجو در مجموعه داده
قبل از استفاده از LINQ to Dataset برای جستوجو در مجموعه داده، ضروری است که دادههایی را بر روی مجموعه داده بارگذاری بکنیم. به این منظور میتوانیم از کلاس DataAdapter یا LINQ to SQL استفاده کنیم. کوئرینویسی با استفاده از LINQ to Dataset تقریبا شبیه به نوشتن کوئری با بقیه انواع LINQ است.
در کوئری زیر، از جدول SalesOrderHeader تمام سفارشات آنلاین را انتخاب کردهایم. سپس در خروجی «شماره شناسایی سفارش» (order ID)، «تاریخ سفارش» (order date)، و «شماره سفارش» (order number) را به عنوان نتیجه نمایش دادیم.
یادگیری سی شارپ یاد با کمک فرادرس
فرادرس برای آموزش سی شارپ، منابع متنی و فیلمهای آموزشی متنوعی تولید و منتشر کرده است. فیلمهای فرادرس از آموزش کار با انواع دادهها و بازیسازی گرفته تا مفاهیمی مانند شیءگرایی و نوشتن برنامههای تحت وب را پوشش میدهند. تمرکز فرادرس بر این است که هم دانشجویان از فیلمهای آموزشی آن به عنوان منابع کمک درسی استفاده کنند و هم افراد شاغل یا جویای کار با کمک فیلمهای فرادرس، تواناییهای عملی خود را ارتقا داده و رزومه بهتری بنویسند. به همین دلیل در حوزه زبان سی شارپ هم فیلمهای آموزشی متخلف و کاملی تولید و منتشر شدهاند.

زبان #C محصولی از شرکت مایکروسافت است. این زبان، یکی از زبانهای برنامه نویسی شیگرا است. سی شارپ کاربردهای بسیار متنوعی دارد. موارد استفاده این زبان از توسعه برنامههای کامپیوتری در محیط ویندوز تا بازیسازی متنوع هستند. فرادرس برای پوشش حوزههای مختلف در سی شارپ، مجموعه آموزشی با نام برنامه نویسی سی شارپ ایجاد کرده است. در پایین، چند مورد از فیلمهای این مجموعه آموزشی را مشاهده میکنید. در صورت تمایل بر روی تصویر بالا کلیک کرده و باقی فیلمهای این مجموعه را نیز بررسی کنید.
مثالهایی درباره استفاده از LINQ
در این بخش از مطلب، ۷ مثال مختلف درباره روش استفاده و سناریوهای متنوع، پیادهسازی کردهایم. این مثالها شامل موارد زیر هستند.
- مثال اول، برای LINQ to Objects
- مثال دوم، درباره انتخاب ستونهای خاصی از جدول
- مثال سوم، مرتبسازی اطلاعات
- مثال چهارم، فیلتر کردن دادهها با چندین شرط مختلف
- مثال پنجم، دسته بندی دادهها
- مثال ششم، ترکیب کردن دو مجموعه داده
- مثال هفتم، بررسی روش استفاده از کلمات کلیدی Any و All
در ادامه این بخش، تمام مثالهای بالا را همراه با کدهای مربوط به بخش اصلی مسئله پیادهسازی کردهایم.
مثال اول برای LINQ to Objects
در کادر زیر، مثال سادهای را پیادهسازی کردهایم. در این مثال با استفاده از LINQ بر روی لیستی از دانشآموزان کوئری اجرا کردایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده میشود.
Adult Students (Query Syntax): Priya Raj Neha Adult Students (Method Syntax): Priya Raj Neha
کد بالا لیستی از اشیاء کلاس Student، شامل نام و سن، ایجاد میکند. برنامه نوشته شده باید دانشآموزان با سن ۱۸ سال یا بیشتر را فیلتر کرده و نام آنها را در کنسول نمایش دهد. به این منظور از هر دو روش Query Syntax و Method Syntax برای نوشتن دستورات LINQ استفاده کردهایم.

مثال دوم درباره انتخاب ستونهای مشخص شده
برنامه نویسان با کمک LINQ میتوانند فقط بخشهای مورد نیاز را از جدول انتخاب کنند. از آنجا که جدولها در سیشارپ به صورت شیء نمایش داده میشوند، میتوان صفات دلخواه را مستقیماً از شیء انتخاب کرد. در کد زیر روش انجام این کار را پیادهسازی کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده میشود.
Name: Amit, Age: 20 Name: Riya, Age: 22 Name: Raj, Age: 21
کد بالا لیستی از اشیاء کلاس Student را ایجاد میکند. این لیست شامل شناسه، نام و سن دانشآموزان است. سپس با استفاده از LINQ فقط ویژگیهای نام و سن دانشآموزان را انتخاب کرده و آنها را در کنسول نمایش میدهد.
مثال سوم مرتبسازی اطلاعات
با کمک LINQ به سادگی میتوان دادهها را مرتب کرد. در کد زیر، روش مرتبسازی دانشآموزان بر اساس سن نشان داده شده است. برای مرتبط در پایگاههای داده SQL میتوانیم از دستور ORDER BY استفاده کنیم. آشنایی با این دستور امکان نوشتن کوئریهای بهتری را در سی شارپ به وجود میآورد. به منظور شناخت و یادگیری کار با آن میتوانید مطلب مربوط به دستور ORDER BY را در مجله فرادرس مطالعه کنید.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده میشود.
Students ordered by Age (ascending): Name: Neha, Age: 19 Name: Amit, Age: 20 Name: Raj, Age: 21 Name: Riya, Age: 22 Students ordered by Name (descending): Name: Riya, Age: 22 Name: Raj, Age: 21 Name: Neha, Age: 19 Name: Amit, Age: 20
کد بالا لیستی از اشیاء کلاس Student شامل شناسه، نام و سن ایجاد میکند. سپس با استفاده از LINQ دانشآموزان را یک بار بر اساس سن به ترتیب صعودی و بار دیگر بر اساس نام به ترتیب نزولی مرتب میکند. در نهایت هم دادههای تولید شده را در کنسول نمایش میدهد.

مثال چهارم فیلتر کردن دادهها با چندین شرط مختلف
با کمک LINQ برنامه نویسان میتوانند چندین شرط مختلف را در کوئریهای خود اعمال کنند.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده میشود.
Students older than 20 and enrolled in Mathematics: Name: Raj, Age: 21, Course: Mathematics
کارهای انجام شده در کد بالا را به ترتیب در فهرست زیر نوشتهایم.
- کد بالا ابتدا لیستی از اشیاء کلاس Student ایجاد میکند. این لیست شامل شناسه، نام، سن و درس دانشآموزان است.
- با استفاده از LINQ دانشآموزانی که سنشان بیش از 20 سال است و در درس ریاضیات ثبتنام کردهاند، را فیلتر میکند.
- اطلاعات آنها را در کنسول نمایش میدهد.
مثال پنجم دسته بندی داده ها
با استفاده از متد GroupBy، برنامه نویسان میتوانند دادهها را دستهبندی کنند. نمونه همین دستور GroupBy در SQL هم وجود دارد. در کد زیر، مثالی برای دستهبندی دانشآموزان بر اساس سن آنها نوشته شده است.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده میشود.
Course: Mathematics Name: Amit, Age: 20 Name: Raj, Age: 21 Course: Physics Name: Riya, Age: 22 Name: Sita, Age: 23 Course: Biology Name: Neha, Age: 19
کارهای انجام شده در کد بالا را به ترتیب در فهرست زیر نوشتهایم.
- کد بالا لیستی از اشیاء کلاس Student را ایجاد میکند. این لیست شامل شناسه، نام، سن و درس دانشآموزان است.
- سپس با استفاده از LINQ دانشآموزان را بر اساس درس گروهبندی میکند.
- در نهایت هم برای هر درس، نام و سن دانشآموزان را در کنسول نمایش میدهد.

مثال ششم ترکیب کردن دو مجموعه داده
LINQ به برنامه نویسان کمک میکند تا دو مجموعه داده مختلف را با یکدیگر ترکیب کنند. برای مثال در کد پایین، مجموعه داده دانشآموزان را با مجموعهای از نمرات مربوط به آنها ترکیب کردهایم.
بعد از اجرای کد بالا، خروجی زیر تولید شده و در کنسول سی شارپ نمایش داده میشود.
Students and their Courses: Student: Amit, Course: Mathematics Student: Riya, Course: Physics Student: Raj, Course: Mathematics Student: Neha, Course: Biology Student: Sita, Course: Physics
این کد دو لیست مجزا از هم تشکیل میدهد.
- لیست از اشیا کلاس Student، شامل شناسه، نام و شناسه درس
- لیست اشیا کلاس Course، شامل شناسه و نام درس
سپس با استفاده از LINQ این دو لیست را بر اساس شناسه درس به هم متصل میکند. در آخر هم نام دانشآموز و درس مربوطه را در کنسول نمایش میدهد.

مثال هفتم استفاده از کلمات کلیدی Any و All
با کمک کلمات کلیدی Any و All، برنامه نویسان میتوانند، برقرار بودن شرایط خاصی را در هیچ یا همه عناصر یک مجموعه بررسی کنند.
بعد از اجرای کد بالا، خروجی زیر، تولید شده و در کنسول سی شارپ نمایش داده میشود.
Is there any student enrolled in Mathematics? True Are all students older than 18? True
کارهای انجام شده در کد بالا را به ترتیب در فهرست زیر نوشتهایم.
- کد بالا لیستی از اشیاء کلاس Student، شامل شناسه، نام، سن و درس ایجاد میکند.
- با استفاده از LINQ بررسی میکند که آیا دانشآموزی در درس ریاضیات ثبتنام کرده است یا نه.
- همچنین بررسی میکند که آیا همه دانشآموزان بالای 18 سال هستند یا نه.
- در آخر، نتایج بدست آمده را در کنسول نمایش میدهد.
چگونه با دیدن فیلم های پروژه محور فرادرس مهارت خود را در سی شارپ افزایش دهیم؟
با دنبال کردن کامل هر کدام از فیلمهای پروژهمحور فرادرس، در واقع تمام آموختههای خود را به کار میگیریم و محصولی واقعی تولید میکنیم. درباره فیلمهای پروژه محور فرادرس، باید به چند نکته توجه کنیم.
- اول اینکه در این فیلمها پروژههای نزدیک به دنیای واقعی پیادهسازی میشوند.
- دوم اینکه این پروژهها از ابتدا تا به انتها به شکل کامل، پیادهسازی میشوند.
- سوم هم اینکه اساتیدی که این پروژهها را تدریس میکنند به کار خود مسلط هستند.
بهترین روش یادگیری هر تکنولوژی و زبان برنامهنویسی، زمانی است که آن را در پروژههای واقعی به کار بگیریم. فرادرس با این هدف، مجموعه آموزشی را درباره زبان سی شارپ، فراهم کرده است. تمام فیلمهای این مجموعه آموزشی به صورت پروژهمحور تولید شدهاند.
در بالا چند مورد از فیلمهای آموزش پروژهمحور سیشارپ را معرفی کردهایم. برای دیدن سایر فیلمها بر روی تصویر زیر کلیک کرده و به صفحه اصلی این مجموعه آموزشی هدایت شوید.

مزایای استفاده از LINQ در سی شارپ
استفاده از LINQ در سی شارپ دارای مزیتهای زیادی است. در فهرست زیر، چند مورد از مهمترین مزیتهای این کار را نوشتهایم.
- LINQ به توسعه دهندگان برای نوشتن کدهای کوتاهتر با خوانایی بیشتر کمک میکند. زیرا با استفاده از LINQ دیگر نیازی به استفاده از حلقههای پیچیده نیست.
- LINQ متد استانداردسازی شدهای را برای فراخوانی اطلاعات از منابع مختلف مانند لیستها، پایگاههای داده و فایلهای XML ارائه میدهد. با کمک این متد میتوانیم از سینتکس یکسان برای انجام کارهای مختلف استفاده کنیم.
- LINQ کدها را قبل از اجرای شدن برنامه بررسی میکند، در نتیجه، میتواند اشتباهات را با سرعت بیشتری پیدا کند. در واقع LINQ، معتبر بودن کوئریها را در زمان کامپایل تشخیص میدهد.
- خوانایی کوئریهای LINQ بالا است. این مسئله به نگهداری راحتتر کدها کمک میکند. همچنین در صورت نیاز به تغییر دادن کدها انجام این کار با کمک LINQ سادهتر است.
- استفاده از LINQ به پیشگیری از بروز خطا در طول زمان اجرای برنامه کمک میکند. زیرا LINQ خطاها را در زمان نوشتن کدها تشخیص میدهد. در نتیجه اتکاپذیری برنامه بیشتر میشود.

جمعبندی
استفاده از LINQ در زبان سی شارپ، کار کردن با دادهها را بسیار سادهتر کرده است. همانطور که در مثالهای بالا دیدیم، LINQ به برنامه نویسان کمک میکند کوئریهایی تمیزتر و خواناتر بنویسند. توسعهدهندگان میتوانند کارهایی مانند مرتبسازی، فیلترکردن و انتخاب دادهها را به شکل بسیار سادهتری انجام دهند.
در این مطلب از مجله فرادرس با LINQ در سی شارپ آشنا شدهایم. توسعهدهندگان زبان برنامه نویسی سی شارپ در هر حوزهای که کار میکنند، حتما نیاز به کار با دادهها و ذخیره آنها هم خواهند داشت. منابع مختلفی مانند پایگاههای داده SQL-محور یا فایلهای XML وجود دارند که برای ذخیرهسازی دادهها به کار برده میشوند. با کمک LINQ میتوانیم به سادگی و مستقیم از درون کدهای سی شارپ بر روی این منابع، کوئری بنویسیم. داشتن شناخت و مهارت استفاده از LINQ در افزایش کیفیت برنامه نویسی توسعهدهندگان سی شارپ یک امتیاز بزرگ است.
source