آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

LINQ and Generic Types

دوره های مرتبط با این مقاله

Query های LINQ براساس انواع جنریک می باشند که در ورژن 2.0 از .NET Framework معرفی شدند. شما به دانش عمیق از جنریک ها قبل از شروع نوشتن query ها ندارید. به هرحال ممکن است بخواهید دو مفهوم اساسی را درک کنید:


  1. وقتی نمونه ای از یک مجموعه ی جنریک مانند List ایجاد می کنید، نوع آبجکت ها را که در لیست حفظ خواهند شد جایگزین T خواهید کرد. برای مثال لیستی از رشته ها با عنوانList بیان شده اند و لیستی از آبجکت های Customer به عنوان List بیان می شوند. یک لیست جنریک به طور جدی تایپ شده اند و مزایای زیادی برای مجموعه هایی که عناصر خود را به عنوان Object ذخیره می کنند، دارد. اگر سعی کنید یک Customer به یک List اضافه کنید، در زمان کامپایل یک خطا دریافت خواهید کرد. استفاده از مجموعه های جنریک آسان می باشد، زیرا مجبور به اجرای run-time type-casting نیستید.
  2. IEnumerable اینترفیسی می باشد که گروه های جنریک را قادر می سازد تا با استفاده از عبارت foreach شمرده شوند. گروه های مجموعه ی جنریک از IEnumerable تنها به عنوان گروه های مجموعه ی غیرعمومی (non-generic) پشتیبانی می کند، به عنوان مثال ArrayList که از IEnumerable پشتیبانی می کند.

متغیرهای IEnumerable در query های LINQ:

متغیرهای LINQ query با عنوان IEnumerable یا یک نوع استخراج شده مانند IQueryable تایپ می شوند. وقتی که یک متغیر query را مشاهده می کنید که با عنوان IEnumerable تایپ شده باشد، فقط به این معناست که وقتی که اجرا می شود، query یک ترتیبی از صفر یا آبجکت های Customer ایجاد خواهد کرد.


     IEnumerable customerQuery =‎
‎    from cust in customers
‎    where cust.City == "London" ‎
‎    select cust;‎
 
foreach (Customer customer in customerQuery)‎
‎{‎
‎    Console.WriteLine(customer.LastName + ", " + customer.FirstName);‎
‎}‎
                        

اجازه ی بررسی عمومی نوع بیانیه ها به کامپایلر (Letting the Compiler Handle Generic Type Declarations)

اگر تمایل داشته باشید می توانید با استفاده از کلمه ی کلیدی از ترکیب عمومی (generic) جلوگیری کنید. لغت کلیدی var ،کامپایلر را ساخته تا با نگاه کردن به منبع داده ی تعیین شده به شکل from به نوع متغیر یک query پی ببرد. مثال زیر همان کد کامپایل شده ی مثال قبل را تولید می کند:


var customerQuery2 = ‎
‎    from cust in customers
‎    where cust.City == "London" ‎
‎    select cust;‎
 
foreach(var customer in customerQuery2)‎
‎{‎
‎    Console.WriteLine(customer.LastName + ", " + customer.FirstName);‎
‎}
                        

لغت کلیدی var زمانی که نوع متغیر مشخص باشد، مفید می باشد، یا وقتی که مشخص نیست، مهم است انواع جنریک های تو در تو به طور واضح مشخص شده باشند، مانند آنهایی که با گروه query ها تولید می شوند. به طور کل پیشنهاد می کنیم که اگر از var استفاده می کنید، تشخیص دهید که می تواند خواندن کد شما را برای دیگران دشوارتر سازد.


  • 2238
  •    0
  • تاریخ ارسال :   1394/07/27

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .