با سلام خدمت کاربران عزیز روکسو، در این سری از آموزش ها قصد داریم به آموزش LINQ در C# بپردازیم. دوستان عزیزی که با زبان C# (سی شارپ) آشنایی ندارند می توانند دوره آموزش مقدماتی تا پیشرفته زبان C# (سی شارپ) را از طریق لینک زیر به صورت رایگان دریافت کنند:
قبل از معرفی linq توسط ماکروسافت، برنامه نویسان مجموعه کدهای مختلفی برای منابع داده ای مختلف استفاده می کردند. مثلا برای پرس و جو در دیتابیس از دستورات sql و برای کار با فایل های xml از Xpath استفاده می کردند، اما با استفاده از تکنولوژی LINQ فقط لازم است با کلمات کلیدی LINQ و متدهایی که در دات نت 3.5 معرفی شد آشنایی داشته باشند، در این صورت با استفاده از یک زبان واحد می توان با تمامی منابع داده ارتباط برقرار کرد.
برای کار LINQ باید فضای نام System.linq را در برنامه ی خود using کنید. در این بسته کلاس ها و متدهای extension قرار دارند که با کمک آن ها می توانید با منابع داده ای مخلتلف کار کنید. لازم به ذکر است LINQ در برنامه نویسی های دانت نت دیگر نیز قابل استفاده است مثلا VB.net.
شکل زیر نوع معماری LINQ را نشان می شود .
نمای کلی از معماری LINQ
بر اساس شکل بالا، انواع مختلفی از LINQ وجود دارد که به شرح زیر می باشد:
که در بخش های آینده هر مورد را بررسی خواهیم کرد.
حالا این سوال مطرح می شود چرا باید از LINQ استفاده کنیم؟ چه چیزی در LINQ باعث شده که اکثر برنامه نویسان به سراغ آن می روند؟
طبق گفته ی ماکروسافت LINQ بسیار پایدار، امن، و قابل اعتماد است و در برنامه های بزرگ و پیچیده بسیار قدرتمند عمل کرده است، به همین دلیل اکثر برنامه نویسان به جای یادگیری چند زبان برای کار با داده های مختلف ترجیح می دهند با LINQ کار کنند.
برخی از مزایای مهم LINQ
مانند هر تکنولوژی، LINQ نیز دارای معایبی می باشد که به شرح زیر است:
خب در اینجا هم مزایا و هم معایب LINQ بررسی شد اما با توجه به این که مزایای آن بسیار بیشتر معایب آن است، یادگیری و استفاده از آن به تمامی برنامه نویسان پبشنهاد می شود.
در تمامی آموزش ها، توضیحات بر روی مثال ها انجام خواهد گرفت چون توضیحات اضافی ممکن است از بار آموزشی بکاهد.
در ابتدا چند متد ساده را بررسی می کنیم تا با کلیات و شکل LINQ آشنا شوید. در جلسه ی آینده آموزش را با LINQ To Object شروع خواهیم کرد.
توجه کنید که تمامی این متد ها در کلاس Enumerable قرار دارند و از نوع extension هستند و قبل از آن لازم است فضای نام System.linq را به پروژه ی خود اضافه کنید.
متد Min
متد Min کم ترین مقدار آرایه را در متغیر result قرار می دهد.
متد Max
با استفاده از این متد می توان مقدار Max موجود در آرایه را در MaximumNum قرار داد.
متد Sum