LINQ to Object
LINQ to ADO.Net
LINQ to XML

تاکنون مطالبی را در مورد LINQ و دلایل بوجود آمدن آن بیان شد که صرفا جنبه تئوری داشتند در ادامه مثالهایی را بررسی می کنیم تا شیرینی استفاده از آن را نیز بچشیم:کف:.
مثال1)
فرض کنید آرایه ای از اعداد داشته باشیم و می خواهیم اعداد بزرگتر از 70 را انتخاب کنیم در حالت معمولی باید به این صورت بنویسیم :
int[ ] i= {20,42,36,74,85,62,70,81,79,100,91};
foreach number in i
{
if (number>70)
Console.Write(number.toString());
}
اما اگر از LINQ بخواهیم استفاده کنیم :
var query = from p in i
where p>=70
select p;
objectdumper.write(query);
حال اگر این کد را اجرا کنیم اعداد بالاتراز 70 در متغیر query ذخیره و سپس چاپ می شوند. البته کامپایلر #C کد بالا را به کد زیر تبدیل می کند :
var query= i.where(p=> p>70
می بینید که بسیار شبیه به گرامر SQL است زیرا برنامه نویسان مدت مدیدی است که به آن عادت دارند.
بهتر است کد بالا را کمی کنکاش کنیم، همانطوری که دیدید query را نوعی برایش مشخص نکردیم اما برای تعریف آن از کلمه var استفاده کردیم. برای چاپ خروجی هم از کلاس ObjectDump استفاده کردیم. این کلاس فقط یک متد Write با سه OverLoad دارد که ابزار مناسبی برای چاپ داده ها با قالب بندی است.
این مثال را در نظر بگیرید :
مثال2)
در این مثال لیستی را از افراد ایجاد کردیم که هر کدام دارای خصوصیاتی از قبیل شماره شناسایی (ID)، شماره کاری(IDRole)،سن(Age)، نام(FirstName) و نام خانوادگی(LastName) را دارا هستند.(تا اینجا که ربطی به LINQ نداشت و از Colloction استفاده کردیم). حال می خواهیم افرادی که سن بیشتر از 30 سال دارند را بدست آوریم
List
{
new Person()
{
ID = 1,
IDRole = 1,
Age = 25,
LastName = "Anderson",
FirstName = "Brad"
},
new Person()
{
ID = 2,
Age = 32,
IDRole = 2,
LastName = "Gray",
FirstName = "Tom"
}
};
var query = from p in people
where p.Age > 30
select new { p.FirstName, p.LastName };
ObjectDumper.Write(query);
در این مثال کلمه کلیدی from حذف شده و به جای آن از اجزای select و where استفاده شده است. select و where به ترتیب به فراخوانی متدهای Select
ممکن است از نحوه این کار شگفت زده شوید C# 2.0 یا نسخه جدید آن C# 3.0 این متد ها را برای کلاس List
پیوند ها