LINQ (Language Integrated Query) یک ویژگی قدرتمند در زبان #C است که به برنامهنویسان این امکان را میدهد تا دادهها را به صورت یکپارچه از منابع مختلف (مثل آرایهها، لیستها، پایگاههای داده، XML و غیره) جستجو، فیلتر، مرتبسازی، و پردازش کنند، بدون اینکه نیازی به یادگیری زبانهای پرسوجو خاص (مثل SQL) داشته باشند.
LINQ بهطور مستقیم در زبان #C یکپارچه شده و امکان نوشتن پرسوجوهایی مشابه SQL را در داخل کد #C فراهم میآورد. این ویژگی به برنامهنویسان این امکان را میدهد که با استفاده از سینتکس زبان #C، عملیاتهای پیچیده روی دادهها انجام دهند.
ویژگیهای اصلی LINQ:
- یکپارچگی با زبان C#: LINQ به زبان #C متصل است و از سینتکس زبان برای انجام پرسوجو استفاده میکند.
- قابلیت کار با منابع مختلف داده: میتوانید از LINQ برای پردازش دادهها در منابع مختلف مانند آرایهها، لیستها، پایگاههای داده، XML، و غیره استفاده کنید.
- سینتکس ساده و خوانا: پرسوجوها به سادگی نوشته میشوند و کدها بسیار خوانا هستند.
- پشتیبانی از Lazy Evaluation: LINQ میتواند از ارزیابی تنبل (Lazy Evaluation) استفاده کند، یعنی عملیاتها تنها زمانی که نیاز باشد اجرا میشوند.
- پشتیبانی از انواع مختلف دادهها: LINQ به شما این امکان را میدهد که بهراحتی عملیاتهای مختلفی مانند فیلتر کردن، مرتبسازی، گروهبندی و محاسبات آماری را انجام دهید.
مثال ساده از LINQ
فرض کنید که یک آرایه از اعداد داریم و میخواهیم فقط اعداد زوج را از آن استخراج کنیم:
using System;
using System.Linq;
class Program
{
static void Main()
{
// یک آرایه از اعداد
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// استفاده از LINQ برای فیلتر کردن اعداد زوج
var evenNumbers = from num in numbers
where num % 2 == 0
select num;
// نمایش نتایج
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
}
}
using System.Linq;
class Program
{
static void Main()
{
// یک آرایه از اعداد
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// استفاده از LINQ برای فیلتر کردن اعداد زوج
var evenNumbers = from num in numbers
where num % 2 == 0
select num;
// نمایش نتایج
foreach (var num in evenNumbers)
{
Console.WriteLine(num);
}
}
}
خروجی:
2
4
6
8
10
4
6
8
10
انواع LINQ:
- LINQ to Objects: برای کار با دادههایی که در حافظه (مثل آرایهها یا لیستها) قرار دارند.
- LINQ to SQL: برای اجرای پرسوجوهای LINQ بر روی پایگاههای داده SQL.
- LINQ to XML: برای پردازش دادههای XML.
- LINQ to Entities: برای کار با پایگاه دادهها از طریق Entity Framework.
- LINQ to DataSet: برای پردازش دادههای موجود در ADO.NET DataSet.
مزایای استفاده از LINQ:
- خوانایی بهتر کد: سینتکس ساده LINQ کدهای پیچیده را به کدهایی خوانا و قابل درک تبدیل میکند.
- کاهش کد تکراری: عملیاتهایی که ممکن است به صورت تکراری در پروژههای مختلف نیاز باشند، با استفاده از LINQ به راحتی و به طور موثر انجام میشوند.
- انعطافپذیری بالا: LINQ به راحتی با انواع مختلف دادهها و منابع داده (مثل SQL، XML و دیگر منابع) کار میکند.
- پشتیبانی از انواع مختلف عملیاتها: مثل فیلتر کردن، گروهبندی، مرتبسازی، و محاسبات آماری.
