PDA

View Full Version : کاربرد Linq



visual_sadegh
سه شنبه 30 مهر 1387, 11:48 صبح
سلام دوستان
کسی میدونه کاربرد لینکیو چیه؟
چه کارهایی رو نمی شه بدون لینکیو انجام داد، یا انجام دادنش سخته؟

__H2__
سه شنبه 30 مهر 1387, 23:48 عصر
سلام
اگر با برنامه های بانک های اطلاعاتی و زبان sql آشنایی داشته باشید، با درک linq هم مشکلی نخواهید داشت.

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

در اصل linq مشابهی بر sql است که از انحصار موتور های قدرتمند بانکهای رابطه در آمده و در زبان برنامه نویسی عادی تجسم یافته!

visual_sadegh
پنج شنبه 02 آبان 1387, 09:39 صبح
ممنون از جواب شما ولی

چه کارهایی رو نمی شه بدون لینکیو انجام داد، یا انجام دادنش سخته؟
آیا لینکیو فقط برای بانک های اطلاعاتی هست یا اینکه می تونه داده ها رو از دیتاست هم بگیره
منظورم اینه که می تونه از اطلاعات دیتاست کوری بگیره.
ممنون

رضا عربلو
پنج شنبه 02 آبان 1387, 17:13 عصر
LINQ یک API است به منظور متمرکز کردن و ایجاد رفتار یکسانی برای کار با داده (با نوع های گوناگون). بطوریکه برنامه نویس برای داده های با توع مختلف Array و XML و دیتابیس و .. بطور یکسان کد بنویسد.

Microsoft.net
پنج شنبه 02 آبان 1387, 19:59 عصر
LINQ یک API است به منظور متمرکز کردن و ایجاد رفتار یکسانی برای کار با داده (با نوع های گوناگون). بطوریکه برنامه نویس برای داده های با توع مختلف Array و XML و دیتابیس و .. بطور یکسان کد بنویسد.

این تعریف کاملتر از تعریف دوست قبلی است . Linq یا Language Integrated Query نوع خاصی از زبان برنامه نویسی است برای انجام عملیات پرس و جو در هر Object ای . این شی میتونه یک بانک باشه یک آرایه باشه یک List Of باشه یک فایل Xml باشه یک DataSet باشه و ...
از این جهت نوعی از زبان بهش میگن که در واقع مجموعه ای از syntax هاست که از قوانین خاص و ثابتی پیروی میکنند و تغییر زبان برنامه نویسی در اون اثری نداره ؛ فقط کافیه به یک زبان برنامه نویسی مادر اضافه بشه . بخاطر همین هست که نحوه کار Linq در #C و Vb.net فرقی با هم نمی کنه و فرقش فقط تو syntax دو زبونه .
در کل مایکروسافت با ارایه این تکنیک پا رو از یک DataAccess صرف فراتر گذاشته و نگاه کلی تری به امر پرس و جو داشته . هر چند که کاستی هایی داره ولی برای ورژن 1 بسیار قوی ظاهر شده به نظرم .

__H2__
جمعه 03 آبان 1387, 02:19 صبح
سلام

منظورم اینه که می تونه از اطلاعات دیتاست کوری بگیره
همانطور که دوستان اشاره کردند linq روی هر دیتای قابل شمارشی میتوانید کار کند.
در واقع هسته تفکر و اعمال linq با دو واسط قدیمی دات نت IEnumerable و IEnumerator پی ریزی شده و هر دیتایی که این واسط ها را پشتیبانی کند در حلقه های ForEach و linq قابل استفاده است.

فقط به عنوان نمونه چند دستور ساده را مثال میزنم: ( شاید کاربردش را بهتر متوجه شوید.)
با فرض داشتن آرایه زیر


Dim arr() As Integer = {2, 5, 8, 9, 10, 8, 1, 7, 5, 8 , 3, 2, 25, 18}


این دستورات برقرار هستند:


یک لیست شمارشی با حذف عناصر تکراری
From i In arr Distinct

یک لیست شمارشی مرتب شده سعودی
From i In arr Order By i Ascending

یک لیست شمارشی مرتب شده نزولی
From i In arr Order By i Descending

یک لیست شمارشی مرتب شده با حذف تکرارها
From i In arr Distinct Order By i

میانگین اعداد آرایه فوق
Aggregate i In arr Into Average(i)

ماکسیموم اعداد آرایه فوق
Aggregate i In arr Into Max(i)

حداقل، حداکثر، میانگین و تعداد اعداد آرایه فوق
Aggregate i In arr Into Min(i), Max(i), Average(i), Count()

حداقل، حداکثر، میانگین و تعداد اعداد آرایه فوق با نام جدید
Aggregate i In arr Into X = Min(i), Ali = Max(i), Reza = Average(i), Z = Count()

و....

البته کار با این دستورات ساده تمام نمیشود و group و join و Where و... میتوان روی ساختارهای تو در توی شمارشی اعمال کرد و خروجی شمارشی یک بلوک linq را خوراک ورودی یک دستور دیگرش کرد.

اگر با زبان sql آشنایی داشته باشید در درک linq و محل کاربرد ان مشکلی نباید داشته باشید.

جمیعاً موفق باشید.

odiseh
شنبه 18 آبان 1387, 09:59 صبح
سلام

پاسخ شما برای شروع خیلی خوب بود. لطفا ادامه بدین.

mina.net
یک شنبه 19 آبان 1387, 13:06 عصر
سلام
دوست عزیز visual_sadehg فکر کنم من و شما همزمان یک تاپیک ارسال کردیم که من قبلش تاپیک شما را ندیدم که اگر می دیدم تاپیک تکراری نمی زدم
من قصد دارم قضیه linq را به صورت جدی ادامه بدم خوشحال می شم کمک کنی مطالب مهمتری از linq ارائه بدیم

لطفا به تاپیک من یکی قبل از تاپیک خودت مراجعه کن امیدوارم مفید باشد.