‫فواید LINQ و LINQ-to-Objects

اگر عادت کنید به استفاده از LINQ بعداً می‌توانید از یکی از مزایای مفید آن استفاده کنید. مدتی پیش مجبور شدم یک سری بهینه‌سازی‌هایی روی دسترسی به دیتابیس انجام دهم. یکی از موارد رایجی که برای بهینه‌سازی پیدا کردم entityهایی بودند که با یک query لینک از دیتابیس فراخوانی می‌شدند. این entityها تعداد رکورد محدودی داشتند، معمولاً خیلی کم تغییر می‌کردند ولی استفاده کنندگان زیادی داشتند. مثلاً فرض کنید آیتم‌های یک منو که در تمام صفحات برنامه مورد نیاز هستند.

در مورد این entityها به ذهنم رسید که همه آنها در ابتدای کار برنامه به جای ثابتی در حافظه load کرده و سپس هر وقت که با آنها کار داشتم از آنجا استفاده کنم. خوشبختانه چون قبلاً از LINQ برای query زدن استفاده کرده بودم، روال query زدن از objectهای موجود در حافظه چندان سخت نبود. کافی بود در query دیتابیسی مقدار in را به جای خواندن از دیتابیس با آن Array یا Collection موجود در حافظه عوض کنم و بعضی ملاحظات LINQ-to-Objects را رعایت کنم. به این ترتیب هم روش query زدنم عوض نشد و هم مجبور نشدم برای استخراج اطلاعات از حافظه از روش‌های foreach و loop و… استفاده کنم.