وب سایت معروف Rbloggers اقدام به معرفی 5 کتاب برتر در آموزش زبان برنامه نویسی R کرده است. فایل این کتابها با کلیک روی نام آنها قابل دانلود خواهد بود.
سواد اطلاعاتی شامل پنج مهارت و یک طرز فکر است که قابلیت یادگیری مستقل و تمامعمر را در افراد به وجود میآورد.
در واقع فرد باسواد اطلاعاتی با برخورداری از این مهارتها و طرز فکر:
به عبارتی افراد مجهز به سواد اطلاعاتی قادرند در هر موقعیت و در مواجهه با هر مسئلهای تشخیص دهند چه دانش و مهارتی کسر دارند و میتوانند با بهترین منابع این نیاز دانشی و مهارتی خود را تامین کنند و بهترینِ خود شوند.
این است که قبل از هر اقدامی، نیاز مخاطب مدنظرتان را عمیق بشناسید تا بتوانید برنامههای سواد اطلاعاتی طراحی کنید که مهارتها و طرز فکر موردنیاز را در او ایجاد کند آن هم با زبان و ادبیاتی که او متوجه میشود. به عبارتی:
بدین منظور باید قبل از هر چیز اهمیت و کاربردهای اطلاعات را در دل موقعیت و هدف مدنظرش تشریح کنید تا مثلا دریابد که چرا برای حل مسائلم – به عنوان یک هنرمند، یک معلم، یک خانم خانهدار … – باید به اطلاعاتی فراتر از پیشدانستههای خود مراجعه کنم؟ اینکه سواد اطلاعاتی چه کمکی به من میکند؟
مثلا به این نتیجه برسد که برای رسیدن به نتیجه دلخواهم باید مهارت جدیدی بیاموزم.
به عبارتی باید ذهنیت او درباره اطلاعات و منابع اطلاعات تغییر کند و به مصادیقی فراتر از مصادیق اطلاعات به مفهوم مرسوم آن یعنی کتاب، مجله و اینترنت بسط یابد.
اینکه منبع اطلاعات میتواند تجربه یک دوست یا یک همکار باشد یا تجربه موفق یک سازمان یا یک کسب و کار باشد.
همین طرز فکر، فرصتهای یادگیری و رشد را به او نشان میدهد و او را عاشق یادگیری و رشد میکند.
با توجه به اینکه دسترسی، ارزیابی و استفاده از هر نوع منبع اطلاعاتی نیازمند ملاحظات ویژهای است، لازم است تا چگونه اندیشیدن درباره هر یک از این مهارتها با توجه به ماهیت فعالیتها و مسائل گروه هدف به آنها آموزش داده شود.
براساس فهم عمیقی که از نیاز اطلاعاتی (یا فعالیتها و مسائل) مخاطب و منابع موردنیاز او به دست میآورید، میتوانید خدماتی طراحی کنید که درخور (فیت) نیاز اوست.
تنها در این صورت است که برنامههای سواد اطلاعاتی تحول ایجاد میکنند
یعنی افراد راهبلد و هر دم در حالِ یادگیری پرورش میدهند
که رشد و بهتر شدن جزو برنامههای ثابت آنهاست.
در بسته جامع مدرسان سواد اطلاعاتی، پراکتیس و آموزشِ سواد اطلاعاتی را با چنین چشماندازی میآموزید.
فریم ورک چیست؟
فریمورکها در محیط های برنامه نویسی مختلف، شامل چارچوبی نرم افزاری است که به برنامه های نوشته شده نظم می بخشد. فریم ورک به طور کلی به مجموعه ای نسبتا کامل از کلاس ها (Class) گفته می شود که امکان افزایش سرعت کار را در روند برنامه نویسی فراهم و در عین حال انعطاف پذیری پروژه جهت توسعه و بروزرسانی های بعدی را افزایش می دهند.
در محیط برنامه نویسی PHP فریمورکهای زیادی وجود دارند از جمله : Laravel, Zend, CakePHP, Symfony, Yii, Phalcon و CodeIgniter
طی این مقاله نگاهی کوتاه به فریمورک CodeIgniter خواهیم داشت. قبل از شروع بحث نیاز است به این دو مفهوم اشاره کنیم:
مفهوم شی گرایی
در روند برنامه نویسی یک پروژه، بسیاری از عملیات و پردازش ها مشابه و تکراری هستند. برای مثال کنترل مقادیر وارد شده در فرم های متعدد و یا فراخوانی داده ها از دیتابیس را در نظر بگیرید. برای این پروسه های مشابه و تکراری می توان تنها از یک تکه کد (یک Class) بهره برد و به این ترتیب از هزینه های تولید، تا پشتیبانی و توسعه کاسته خواهد شد.
برنامه نویسی شی گرا (Object Oriented) یک راهکار یا الگوی برنامه نویسی، با هدف حذف کدهای تکراری (تا حد امکان)، در جهت افزایش قابلیت اعتماد و کاهش هزینه های تولید و نگهداری می باشد. در این الگو، مجموعه ای از صفات (attributes) و عملیات (operations) اشیا را تشکیل می دهند و می توان از این اشیا به طور مکرر در پروژه بهره برد و از پیچیدگی های تکراری داخل پروژه اجتناب کرد. هر کلاس شامل مجموعه ای از اشیا می شود که صفات و عملیات مشابهی دارند.
معماری Mvc
MVC که به فارسی می شود مدل-نما-کنترلگر یک معماری در برنامه نویسی است و به زبان ساده یعنی جدا کردن پوسته، از هسته پروژه. در معماری MVC پروژه به سه بخش اساسی مدل ها، نماها و کنترل گر ها تقسیم و سازماندهی می شود.
مدل ها در واقع شامل هسته سخت پروژه هستند و با دیتابیس ارتباط و پردازش های مرتبط را انجام می دهند.
نماها پردازش ها برای ارائه پوسته بیرونی را انجام و نتایج پردازش های بک اند (مدل ها و کنترلگر ها) را در قالب رابط کاربری ارائه می دهند.
کنترل کننده ها هم بخشی از بک اند پروژه هستند که مسئول ارتباط نماها با مدل ها می باشند. کنترل گر ها شامل پردازش های منطقی می شوند.
بعنوان مثال : 1. کاربر در صفحه ورود به سایت فرم را تکمیل و ارسال می کند. 2. کنترل کننده لاگین فراخوانی می شود 3. کنترلگر از مدل لاگین وضعیت کاربر را فراخوانی می کند 4. اطلاعات ورود در مدل لاگین تایید (یا رد) می شود 5. نمای خوش آمد برای نمایش به کاربر فراخوانی می شود. 6. نمای فراخوانی شده برای نمایش به کاربر، چاپ می شود.
هدف اساسی این معماری نرم افزاری، افزایش نظم، بهبود امکان توسعه و کاهش هزینه های نگهداری است. لازم به ذکر است که کلاس ها و مفهوم شی گرایی، ستون فقرات معماری MVC است. به زبان ساده، هر یک از اجزای MVC شامل تعدادی کلاس است که در تعامل با همدیگر پردازش های درخواستی را انجام و خروجی مناسب را ارائه می دهند.
CodeIgniter چیست؟
کدایگنایتر (به اختصار: CI) یکی از فریم ورک هایی است که برای زبان PHP ارائه شده و هدف اصلی آن حداکثر افزایش در سرعت برنامه نویسی نسبت به زمانی که پروژه را از پایه کدنویسی کنید، عنوان شده است. این فریمورک مجموعه ای از کتابخانه های ضروری و پرمصرف را فراهم کرده و براساس معماری MVC طراحی شده است. به ادعای توسعه دهندگانش با به حداقل رساندن کدهای مورد نیاز برای هر وظیفه، به برنامه نویس زمان بیشتری برای تمرکز بر جنبه های خلاقانه پروژه را می دهد.
ویژگی های فریمورک CI
1. حجم خیلی کم (حدود 3 مگابایت) و سرعت پردازش بالایی دارد.
2. نصب و راه اندازی آسان (کافیست آپلود و Extract کنید)
3. با هاست عادی و سرورهای اشتراکی و در نسخه های مختلف PHP قابل استفاده است.
4. تنظیمات اولیه خیلی کمی (تقریبا هیچ) نیاز دارد.
5. فریمورکی ساده است که زمان یادگیری و استفاده از آن برای برنامه نویس های آشنا با PHP بسیار کم (در حد چند روز) است.
6. نیازی به استفاده از Command Line ندارد.
7. از بانکهای اطلاعاتی زیادی پشتیبانی می کند.
8. راهنماها و مستندات کاملی برای استفاده از این فریم ورک موجود است.
اگر بعنوان برنامه نویس PHP تنها کار می کنید و یا یکی دو نفر همکار دارید، اگر به دنبال فریمورکی هستید که زمان زیادی برای یادگیری نخواهد، اگر علاقمند به فریمورکی با حجم کم و سرعت پردازش خوبید، اگر دوست دارید یا نیاز است پروژه تان دارای معماری MVC باشد، فریم ورک CodeIgniter برای شما ساخته شده است.
مایندمید بعنوان مشاور 24 ساعته کسب و کار آنلاین شما، در مراحل مختلف از آشنایی و یادگیری برنامه نویسی، اجرای ایده ها و توسعه پروژه های تحت وب بر پایه فریم ورک CI همراه شماست. هم اکنون می توانید تماس بگیرید.
آیا کسی هست ایموجی ها را دوست نداشته باشد؟ این شکلک های کوچک رنگارنگ همه احساسات را به خوبی انتقال می دهند خنده، گریه و ... .
اما در حالی که این شکلک های کوچک در همه تلفن های همراه به آسانی در دسترس هستند اما استفاده از آن در کامپیوتر ممکن است کمی سخت باشد.
خوشبختانه با همت مایکروسافت این صورتکهای رنگارنگ از طریق صفحه کلید لمسی که با ماوس هم می توان از آن استفاده کرد در دسترس ویندوز 10 و ویندوز 8.1 قرار گرفت. به علاوه اینکه در سالگرد به روز رسانی ویندوز 10 محموعه ای بزرگتر از ایموجی ها در دسترس قرار خواهد گرفت. لازم به ذکر است که ایموجی ها در ویندوز 7 نیز به گونه ای متفاوت از ویندوز10 و ویندوز8.1 پشتیبانی می شود.
برای دسترسی به صفحه کلید لمسی روی آیکون صفحه کلید موجود در نوار وظیفه ضربه بزنید.
کاربران ویندوز 10 اگر آیکون صفحه کلید را نمی بینید با کلیک راست روی نوار وظیفه Show touch keyboard button را انتخاب کنید.
کاربران ویندوز 8.1 با کلیک راست روی نوار وظیفه و رفتن به مسیر Toolbars و سپس Touch keyboardمی توانند آیکون صفحه کلید را ببینند.
برای استفاده از صورتک ها روی دکمه شکلک ها سمت چپ دکمه Space بزنید. مشاهده می کنید که ایموجی ها در 7 دسته قرار گرفته اند.
برای تغییر دسته ها می توانید روی دکمه های پایین صفحه کلید کلیک کنید.
برای حرکت روی ایموجی های یک گروه روی دکمه چپ و راست سمت چپ صفحه کلید ضربه بزنید.
برای تغییر رنگ پوست شکلک می توانید از دکمه رنگ موجود در گوشه سمت چپ پایین صفحه استفاده کنید. با کلیک بر روی این دکمه 6 رنگ مختلف پوست به شما نشان داده می شود.
ویندوز
7 به گونه ای کاملا متفاوت ایموجی ها را پشتیبانی می کند. به این معنی که
شما می توانید با مرجعه به وب سایت ان ها را ببینید و بعد از انتخاب شکلک
با کلیدهای Ctrl + C آن را کپی و سپس با کلید های Ctrl + V در جایی که می
خواهید ایموجی را جایگذاری می کنید.
متأسفانه باید بگوییم ویندوز 7 از صفحه کلید لمسی پشتیبانی نمی کند و فقط شکلک های سیاه و سفید را پشتیبانی می کند.
وب سایت معروف Rbloggers اقدام به معرفی 5 کتاب برتر در آموزش زبان برنامه نویسی R کرده است. فایل این کتابها با کلیک روی نام آنها قابل دانلود خواهد بود.
Data Mining یک فرایند کلی است برای مرتب سازی مجموعه ای از داده های بسیار، این تکنیک عموما توسط سازمانهای تجاری و تحلیلگران مالی مورد استفاده قرار می گیرد ولی این قانون بطور فزاینده ای توسط دانشمندان برای استخراج اطلاعات از میان مجموعه های داده ی بسیار بزرگ که توسط آزمایش های مدرن و شیوه های مبتنی بر مشاهده گرد آوری شده مورد بهره برداری قرار می گیرد.از این نوع استخراج داده برای تولید گزارشات مدیریتی و گزارشاتی که برمبنای آنها تجارتی انجام می شود، استفاده می شود.
در این که کتاب توسط آقای مهدی صمدی به فارسی ترجمه شده است. به بررسی داده کاوی با استفاده از زبان برنامه نویسی R پرداخته است که نسخه اصلی کتاب نیز به همراه نسخه فارسی آن برای دانلود قرار گرفته است.
تعداد صفحات کتاب : ۲۷۶ صفحه
اندازه فایل : ۷٫۹۲MB
پیش از ظهور لینک، محاورهها با رشتههای سادهای که در یک برنامه کاربردی ساخته میشدند و حتی فاقد ویژگی IntelliSense بودند، استفاده میشدند. اما با ظهور لینک، این شکل دسترسی به دادهها کاملاً متحول شد و برنامهنویسان توانستند با حداقل کدنویسی محاورهها را از یک رشته ساده خارج کرده و به محاورههایی تبدیل کنند که مدیریت بیشتر روی آنها امکانپذیر باشد. منعطف بودن لینک باعث محبوبیت آن شد. کدنویسان بدون اینکه درگیر قواعد بسیار پیچیده دسترسی به منابع دادهای مختلف شوند، موفق شدند بهراحتی برای دسترسی به دادههایی که روی منابع مختلفی همچون بانکهای اطلاعاتی رابطهای، اسناد xml و... قرار دارند، از لینک استفاده کنند. با این مقدمه، به سراغ معرفی تعدادی از تکنیکهای پرکاربرد در لینک خواهیم رفت که برای دسترسی به دادههایی که روی منابع مختلف قرار دارند، استفاده میشود. اما ابتدا باید با ساختمان درونی محاورهها در لینک آشنا شویم.
محاوره چیست؟
پرسوجو
(Query) که به نام محاوره نیز شناخته میشود، رشتهای متنی است که
بهمنظور بازیابی دادهها از یک منبع دادهای، بهروزرسانی، اضافه کردن و
حذف دادهها، از آن استفاده میشود. لینک با هدف ارائه یک مدل ساده از
محاورهها در اختیار برنامهنویسان قرار گرفت؛ مدلی که قادر است به منابع
دادهای مختلف به شیوه کدنویسی یا ویزاردی متصل شود. برای این منظور
مجموعهای از متدهای اصلی که عملگرهای استاندارد محاوره (SQO) نام دارند،
لینک را یاری میکنند. طیف گستردهای از این متدها به شکل ترتیبی کار
میکنند؛ به این معنی که شی مورد محاوره از نوع یکی از رابطهای
<IEnumerable<T یا <IQueryable<T خواهد بود. شایان ذکر است
IQueryable که برای محاورههای LINQ TO SQL استفاده میشود، در نهایت به
IEnumerable تبدیل میشود. در نتیجه یک محاوره لینک همواره با اشیا سروکار
دارد.
نکته بارز و شاخص این مدل به ویژگی یکدست بودن آن بازمیگردد؛ به طوری که برنامهنویسان در اکثر مواقع از الگوی ثابتی بهمنظور بازیابی دادهها از منابع دادهای استفاده میکنند. محاورههای ساختهشده توسط لینک، عبارات باقاعدهای هستند که همراه با فیلترهای مختلفی همچون مرتبسازی، تجمع و... قابل بهرهبرداری هستند. استخراج ساختمند دادهها در عمل به طراحان و بهویژه طراحان وب کمک فراوانی میکند. روشهای SQO روشهای توسعهیافتهای هستند که از کلاسهای Enumerable و Queryable تعریف میشوند. بعضی منابع این روشها را عملگرهای پرسوجو نامگذاری کردهاند. همگی این روشها در فضایی به نام System.Linq قرار دارند. بهطور کلی محاورهها در لینک، در پنج گروهی که در جدول شماره یک مشاهده میکنید، قرار میگیرند.
جدول شماره 1: پنج گروهی که نقش تدارکبینندهها را برای لینک بازی میکنند.
در کنار این پنج گروه اصلی، کتابخانههای جانبی دیگری نیز وجود دارند که برای مقاصد خاص استفاده میشوند.
LINQ
to Active Directory از جمله این موارد است. در میان گروههای جدول شماره
یک، دو گروه LINQ to Objects و LINQ to SQL پرکاربردترین گروههایی هستند
که برنامهنویسان استفاده میکنند. در بسیاری از موارد، برنامهنویسان
ترجیح میدهند به جای استفاده از محاورههای SQL، از محاورههایی که LINQ
to SQL در اختیار آنها قرار میدهد، استفاده کنند. به دلیل اینکه در عمل،
مکانیزم سادهتری را برای دسترسی به دادهها در اختیار آنها قرار میدهد.
در کنار این تدارکبینندهها، عملگرهای محاورهای دیگری نیز وجود دارد که
در یک عبارت محاوره از آنها استفاده میشود. پرکاربردترین این عملگرها در
جدول شماره دو آمده است.
جدول شماره 2: پرکاربردترین عملگرهایی که در محاورههای لینک استفاده میشوند.
ساختار و نحوه اجرای محاورهها در لینک
اجرای
محاورهها در لینک مکانیزم خاص خود را دارد. اولین مرحله، اتصال به منبعی
است که دادهها درون آن قرار دارند. مرحله دوم، تعریف رشته محاورهای است.
این رشته تعیینکننده منبع دادهای و دادههایی است که از آن منبع دریافت
خواهید کرد. سومین مرحله اجرای محاوره است. اجرای یک محاوره با استفاده از
حلقه foreach انجام میشود. در این حالت دادههای دریافتشده از منبع درون
یک متغیر رشتهای قرار میگیرند. زمانیکه همه عناصر پردازش شدند، رشته
قابل استفاده خواهد بود.
فهرست شماره یک، مثال سادهای از نحوه دسترسی
به یک منبع دادهای، ساخت رشته بازیابی و دریافت دادهها از این منبع را
نشان میدهد. این محاوره زمانی قابل استفاده خواهد بود که در حلقه foreach
استفاده شود. در این حالت متغیر مربوط به محاوره اجرا میشود و به سراغ
منبع دادهای خواهد رفت که برای آن تعیین شده است و در ادامه، دادهها را
بر مبنای الگویی که در محاوره مشخص شده است، دریافت خواهد کرد.
static void Main(string[] args)
{
int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
var myQuery =
from num in numbers
where (num % 2) == 0
select num;
foreach (int num in myQuery)
{
Console.Write(“{0,1} “, num);
}
}
فهرست شماره یک
شکل 1 ساختار کلی یک محاوره و نحوه اتصال آن به یک منبع دادهای را همراه با اجزا درون محاوره نشان میدهد. نکتهای که در خصوص لینک باید به آن توجه کنید، این است که در لینک، اجرای یک محاوره متفاوت با خود محاوره است. به عبارت دیگر، با ساخت یک رشته محاورهای، هیچ دادهای در اختیار شما قرار نخواهد گرفت تا محاوره ساختهشده را اجرا کنید.
شکل 1: نحوه اجرای یک محاوره در لینک
منبع دادهای چیست؟
در
فهرست شماره یک، منبع دادهای یک آرایه بود که بهطور صریح از رابط
<IEnumerable<T پشتیبانی میکرد. این بدان معنا است که محاورههای
لینک روی اشیایی که از رابط IEnumerable ارثبری داشته باشند، بهراحتی
پیادهسازی میشوند. حلقه foreach برای اجرای محاورهها به IEnumebrale یا
<IEnumerable<T نیاز دارد. نوعهایی که از رابط <IEnumerable<T
یا رابطهایی همچون <IQueryable<T مشتق میشوند، نوعهای قابل
پرسوجو هستند. لینک میتواند از یک نوع قابل پرسوجو به شکل یک منبع داده
مستقیم، استفاده کند. اما یک منبع داده، همیشه یک آرایه ساده نیست. اگر
منبع مورد تقاضا یک بانک اطلاعاتی از نوع SQL Server باشد، تدارکبیننده
LINQ to SQL استفاده خواهد شد. در حالی که اگر منبع داده شما بانک اطلاعاتی
دیگری باشد، باید از LINQ to Dataset استفاده کنید. اگر منبع دادهای
درخواستی شما یک فایل XML باشد، تدارکبیننده LINQ to XML برای ساخت و
اجرای محاورهها استفاده میشود.
هدف از ارائه لینک کار با دادهها به
شیوه ساده و مستقیم است. لینک یک لایه برنامهنویسی انتزاعی میان زبانهای
تحت داتنت و منابع دادهای فراهم میآورد. شاید این سؤال پیش آید که چه
لزومی دارد برای دسترسی به منابع دادهای از محاورهها استفاده کنیم؟ در
پاسخ باید گفت که هر کدام از رابطهایی که برای دسترسی به دادهها از آنها
استفاده میشود، ترکیب نحوی خاص خود یا زبانی را که از آن استفاده
میکنید، در اختیار دارند؛ در نتیجه همواره باید با قواعد و ترکیبات نحوی
هر منبع دادهای و زبان برنامهنویسی هدف آشنایی داشته باشید. در مقابل
لینک این قابلیت را در اختیار شما قرار میدهد تا از چارچوب استانداردی
برای دسترسی به دادههای قرارگرفته در منابع دادهای مختلف استفاده کنید.
محاوره شماره یک؛ دسترسی به منابع دادهای ساده همچون آرایهها
آرایهها
سادهترین منبع دادهای هستند که میتوانید دادههای مدنظر را از آنها
استخراج کنید. در حالی که عناصر درون آرایهها را میتوان با استفاده از
حلقههایی همچون foreach یا for استخراج کرد، لینک نیز میتواند همین کار
را به شکل ساختیافتهای انجام دهد. فهرست شماره دو نحوه پیادهسازی یک
محاوره لینک روی یک آرایه را نشان میدهد.
static void Main(string[] args) { String[] myArray = { “One”, “Two”, “Three”, “Four”, “Five” };
var MyQuery =
from mystring
in myArray
select mystring;
foreach(var str in MyQuery)
Console.WriteLine(str); }
فهرست شماره دو
محاوره شماره دو؛ محدود کردن دادههای دریافتی از یک منبع داده
محاوره
شماره یک، همه دادههای درون یک آرایه را بازمیگرداند؛ اما اگر در نظر
داشته باشیم تنها دادههای خاص خود را استخراج کنیم، باید از کلمه کلیدی
where استفاده کنیم. این کلمه کلیدی به شما اجازه میدهد تا شرطی را روی یک
محاوره پیادهسازی کنید. در اغلب موارد، محاورهها به فیلتر نیاز دارند؛
به دلیل اینکه در بیشتر زمانها نیازی نداریم کل مجموعه دادهها را از درون
یک منبع دادهای استخراج کنیم؛ بهویژه زمانی که منبع داده هدف ما یک بانک
اطلاعاتی مشتمل بر دهها هزار رکورد باشد. مکان قرارگیری کلمه where در یک
محاوره، بعد از کلمه from و قبل از کلمه کلیدی select است. در فهرست شماره
سه از ترکیب نحوی where بهمنظور محدودکردن خروجی دادههایی که اندازه
آنها از سه کاراکتر بیشتر است، استفاده کردهایم.
static void Main(string[] args)
{
String[] myArray = { “One”, “Two”, “Three”, “Four”, “Five” };
var MyQuery =
from mystring
in myArray
where mystring.Length > 3
select mystring;
foreach(var str in MyQuery)
Console.WriteLine(str);
}
فهرست شماره سه
محاوره شماره سه؛ مرتبسازی و گروهبندی دادههای بازیافتشده در یک محاوره
برای
چینش دادههای بازیافتی در یک محاوره از کلمه کلیدی orderby استفاده
میشود. با استفاده از این کلمه کلیدی نحوه مرتبسازی دادهها، مطابق با
نیاز کاری شما خواهند بود. در کنار عملگر orderby روشها و عملگرهای دیگری
نیز برای مرتبسازی دادهها در اختیار شما قرار دارند. فهرست شماره چهار
نحوه مرتبسازی دادهها با عملگر orderby را نشان میدهد.
class Program
{
public class myclass
{
public string Name { get; set; }
public int Age { get; set; }
}
static void Main(string[] args)
{
myclass[] mystrings = { new myclass { Name=”Barley”, Age=8 },
new myclass { Name=”Boots”, Age=4 },
new myclass { Name=”Whiskers”, Age=1 } };
IEnumerable<myclass> query = mystrings.OrderBy(Program => Program.Age);
foreach (myclass mystr in query)
{
Console.WriteLine(“{0} - {1}”, mystr.Name, mystr.Age);
}
}
}
فهرست شماره چهار
محاوره شماره چهار؛ متصل کردن نتایج بهدستآمده از محاورهها
در
برخی موارد، محاورهها تنها روی یک منبع دادهای خاص اجرا نمیشوند و ما
به دادههایی نیاز داریم که درون منابع دادهای مختلف وجود دارند. در چنین
شرایطی لازم است تا محاورهها را به شکلی به یکدیگر متصل کنیم. فهرست شماره
پنج نحوه به کارگیری این تکنیک را نشان میدهد.
static void Main(string[] args)
{
Int32[] FirstArray= {1,2,3,4,5};
Int32[] SecondArray = { 6,7,8,5,4};
var MyQuery = from QueryA in FirstArray
from QueryB in SecondArray
where QueryA == QueryB
select new { QueryA, QueryB };
foreach(var str in MyQuery)
Console.WriteLine(str);
}
فهرست شماره پنج
محاروه شماره پنج؛ نحوه پیادهسازی یک شرط روی یک محاوره
بعضی
مواقع با محاورههایی برخورد میکنید که مجبور میشوید عملیاتی را روی چند
عنصر انجام دهید تا اطلاعات مورد نیازتان را دریافت کنید. اگر این عملیات
تکراری را به دفعات با محاورهها انجام دهید، وقت زیادی از شما گرفته
میشود. لینک به شما پیشنهاد میکند از Let برای ساخت مقادیر جدیدی که در
ادامه به کار میروند، استفاده کنید. فهرست شماره پنج نحوه به کارگیری کلمه
کلیدی Let را همراه با ترکیب دو محاوره با یکدیگر نشان میدهد. (شکل 2)
شکل 2: نحوه پیادهسازی یک شرط روی محاوره
static void Main(string[] args)
{
Int32[] ArrayA = {1,2,3,4};
Int32[] ArrayB = { 1,2,3,4};
var MyQuery =
from QueryA in ArrayA
from QueryB in ArrayB
let TheSquare = QueryA * QueryB
where TheSquare > 4
select new { QueryA, QueryB, TheSquare };
foreach(var str in MyQuery)
Console.WriteLine(str); }
فهرست شماره پنج
در شماره آینده به بررسی تکنیکهای دیگر مربوط به لینک خواهیم پرداخت.