آموزش سریع دستورات زبان لینک (LINQ)

بروزرسانی شده در ۱۶ آذر ۱۳۹۹
آموزش سریع دستورات زبان لینک (LINQ)
زمان مطالعه : 7 دقیقه 408 بازدید 2 نظر

دستورات کاربردی و مهم لینک و همراه با مثال لینک زبان کئری گرفتن که با استفاده از اون می توانید از هر مجموعه ای که خاستید کئری بگیرید.

لینک مخفف کلمه Language Integrated Query) LINQ) زبان کئری گرفتن که با استفاده از اون می توانید از هر مجموعه ای که خاستید کئری بگیرید.

 using System.Linq; 

برای استفاده از این زبان ابتدا فضای نام اون رو در برنامه اضافه می کنیم. 

در ذیل برای کار کردن با لینک ما یک مجموعه ای ساخته ایم که کئری های خود را روی آن اجرا کنیم.

 

int[] numbers = { 1, 3, 5, 9, 11, 13, 15, 19, 25, 35, 45, 51, 63, 68, 70, 80, 90, 100 };

 

دستور select

نکته مهم: n که مشاهده می کنید یک نام هست که ما به مجموعه ای خود نسبت می دهیم تا با آن راحتر کد های دیگر را اعمال کنیم. 

ما تمام اطلاعات مجموعه ای numbers  را دریافت و به صورت آرایه بر می گردانیم و در متغییر result به آن می توانیم دسترسی داشته باشیم.

 

int[] result = (from n in numbers select n).ToArray();

 

دستور orderby

ما ابتدا مرتب و سپس با دستور select  اطلاعات را دریافت و با toArray آن ها را به آرایه تبدیل و در متغییر result ذخیره می کنیم. 

 

int[] result = (from n in numbers 
                            orderby n descending
                            select n).ToArray();

 

دستور where

در ابتدا ما دو شرط که یکی عدد های گرفته شده از مجموعه باید بزرگتر از 30 باشد و عدد ما کوچیکتر از صد باشد بعد از شرط ما داده ها را مرتب و دریافت می کنیم و به صورت لیست در متغییر var result ذخیره می کنیم.

نکته: ما نمی توانیم از دستور ToList برای گرفتن اطلاعات در متغییر int[] result اقدام کنیم چون یک مجموعه هست و در مجموعه ما نمی توانیم لیست اضافه کنیم.

یاد آوری var میتواند به هر نوع داده ای تبدیل شود.

 

 var[] result = (from n in numbers
                            where n > 30 && n < 100
                            orderby n descending
                            select n).ToList();

 

دستور First در LINQ

 در این دستور کل مجموعه پیمایش می شود و اگر ما 10 مورد از عدد 25 هم داشته باشیم اولین عدد 25 را برای ما بر میگرداند. سعی کنید برای جاهای که مطمئن هستید داده موجود هست با این دستور اطلاعات را برگدانید چون اگر عدد 30 نباشد یک exception بر می گرداند.

 

var[] result = (from n in numbers
                            where n == 25
                            select n).First();

 

دستور FirstOrDefault 

با این دستور ما دیگر یک عدد پیش فرض (صفر) را داریم تا exception نداشته باشیم.

 

var[] result = (from n in numbers
                            where n == 30
                            select n).FirstOrDefault();

 

دستور Single 

این دستور شبیه کد First با این تفاوت که دیگر کل مجموعه ما پیمایش نمی شود و با اولین داده مشابه نتیجه برگردانده می شود.

 

var[] result = (from n in numbers
                            where n == 25
                            select n).Single();

 

دستور SingleOrDefault

مشابه دستور FirstOrDefault با این تفاوت که اولین داده را بر می گرداند.

 

var[] result = (from n in numbers
                            where n == 30
                            select n).SingleOrDefault();

 

دستور count

 در این دستور ما تمام اطلاعات را بر می گردانیم. می توانیم شرط هم مانند دستورات قبل بزاریم (مثلا جنسیت مشخص کنیم)

 

int[] result = (from n in numbers
                            select n).Concat();

 

دستور Sum

جمع کردن اطلاعات با هم توسط این دستور امکان پذیر است.(جمع کل اعضا را نمایش می دهد.)

 

int[] result = (from n in numbers
                            select n).Sum();

 

دستور Max

بزرگترین داده از  مجموعه را به ما نمایش می دهد.

 

 int[] result = (from n in numbers
                            select n).Max();

 

دستور Min

کوچکترین داده از  مجموعه را به ما نمایش می دهد.

 

  int[] result = (from n in numbers
                            select n).Min();

 

دستور Take

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

 

   var[] result = (from n in numbers
                             orderby n descending
                             select n).Take(4).ToArray();

 

دستور  Skip

با دستور زیر ما اصلاعات را مرتب می کنیم و با دستور Skip چهار مورد را نادیده گرفته و با دستور Take چهار مورد دریافت و به صورت لیست برمی گردانیم.

 

var[] result = (from n in numbers
                            orderby n descending
                            select n).Skip().Take(4).ToList();

 

دستور Any

خروجی به ما true & false می دهد که آیا نتیچه ای وجود دارد.

 

 bool result = (from n in numbers
                           where n == 30
                           select n).Any();

شما می توانید برای یادگیری دستورات Lambda به این لینک مراجه کنید.

نظرات ارزشمند شما
2 نظر
کاربر مهمان
کاربر مهمان
۲۵ آذر ۱۳۹۹

ممنون، ولی بیشتر اعضای linq رو شرح ندادین.

کاربر مهمان
کاربر مهمان
۱۷ آذر ۱۳۹۹

خیلی جالب انگیز بود عالی

با عضویت در خبرنامه می توانید از جدیدترین مقالات، اخبار و تخفیف های ویژه در ایمیل خود با خبر شوید...