دوباره خوش آمدید، در چند ویدیوی بعدی، مطالب شگفت‌انگیزی براتون دارم که شما رو هیجان‌زده می‌کنه و
امیدوارم براتون بیش از حد سنگین نباشه، اما من اون رو واقعاً گام به گام و بسیار آهسته تشریح خواهم کرد.
و ما عمیقاً پیش خواهیم رفت تا تقریباً هر چیزی رو که قراره انجام بدیم، درک کنیم.
یک چیز وجود داره که هنوز قادر به درک کاملش نخواهیم بود، چون پرداختن به اون هم واقعاً کمی زیاد خواهد بود، چون **Delegates** (دلیگیت‌ها) چیزی هستن که بعداً در دوره پوشش خواهیم داد،
و یک ساعت یا بیشتر طول می‌کشه تا واقعاً عمیقاً به **delegates** بپردازیم.
با این حال، ما از **predicates** (محمول‌ها) استفاده خواهیم کرد که به اصطلاح نوعی از **delegates** هستن.
اما برای اینکه بتونیم از **predicates** استفاده کنیم، نیازی به درک کامل **delegates** نداریم.
و اصلاً چرا باید بخوایم از **predicates** استفاده کنیم؟
چون کلمه کلیدی اون در ارائه، اوایل این فصل، وجود داشت.
پس چرا باید بخوایم از **predicates** استفاده کنیم؟
بیایید به مثال خودمون اینجا نگاه کنیم.
پس ما **list** خودمون رو اینجا داریم، درسته؟
**list** اعدادمون.
و بیایید چند عدد دیگه اینجا اضافه کنیم. مثلاً **25** و **18**.
پس حالا من یک سری عدد دارم.
کاری که می‌خوام انجام بدم اینه که تمام اعدادی رو که بزرگتر از **10** یا بالاتر از **10** هستن، پیدا کنم.
چطور باید این کار رو انجام بدم؟
خب، قضیه اینه که می‌تونم جلو برم و از **numbers.** استفاده کنم و از **Find** یا **FindAll** استفاده کنم.
پس **Find** فقط یک **int** رو به من می‌ده.
به عنوان نتیجه، **FindAll** یک **list** از **int**ها رو به من می‌ده.
پس این متد **FindAll**، و شما از قبل می‌تونید ببینید که می‌گه **x = > x == 10**. پس تو این خط چی می‌گذره؟
ما قبلاً چیزی شبیه به این رو دیدیم.
و من گفتم فعلاً فقط ازش صرف نظر کنید.
اما حالا دیگه زمان صرف نظر کردن ازش نیست.
پس من دقیقاً توضیح می‌دم که چطور کار می‌کنه.
پس بیایید فقط از این عبارت اینجا استفاده کنیم که واقعاً می‌گه **x** علامت مساوی بزرگتر از علامت **x == 10**.
پس کاری که این انجام می‌ده اینه که تمام **10**ها رو داخل **list** من پیدا می‌کنه و یک **list** رو **return** می‌کنه.
با این حال، چیزی که ما به متد **FindAll** اینجا پاس می‌دیم، یک **predicate match** هست.
خب **predicate** چیه؟
خب می‌تونید روش کلیک کنید و نگاه کنید. اون یک **public delegate bool predicate** هست، با این همه کلمه کلیدی که هنوز بهشون دست نزدیم.
و خیلی زوده.
پس ما اینجا داریم از **generics** و **delegates** استفاده می‌کنیم.
و همونطور که گفتم، برای شما در این مرحله اولیه از دوره، خیلی زیاده.
با این حال، من به شما توضیح می‌دم که چطور اون رو به کار ببرید، اوکی؟
چطور یک **predicate** ایجاد کنید که بعداً بتونید ازش برای پیدا کردن آیتم‌هایی استفاده کنید که به اصطلاح با یک سری الزامات خاص مطابقت دارن.
پس بیایید فقط به این نگاه کنیم که ما قرار نیست بگیم برابر با **10**، بلکه **10** و بزرگتر از **10**.
و بعد بیایید این **list** رو نمایش بدیم.
پس بیایید در واقع این رو داخل یک **list** ذخیره کنیم. بعد از اون واقعاً به درک دقیق آنچه در اینجا می‌گذره خواهیم پرداخت.
و فقط درک کنید که این یک **list** از اعدادی رو برمی‌گردونه که **10** و بالاتر هستن، اوکی؟ پس این کاریه که این خط انجام می‌ده.
حالا بیایید نتیجه اون رو ذخیره کنیم.
چون اگه روی **FindAll** نشانگر رو نگه دارید، می‌گه یک **list** از **int**ها رو برمی‌گردونه.
پس بیایید جلو بریم و بگیم **List** یا به این شکل، **List** که **higherTen** (بالاتر از ده) باشه اسمش، قراره نامش باشه، شاید دقیق‌تر **higherEqualTen** (بالاتر مساوی ده). پس اون **list** خواهد بود که نتیجه هر کاری که اینجا انجام می‌دیم، خواهد بود.
پس همونطور که می‌دونید، اگه یک متد رو مثل کاری که ما اینجا روی **list** خودمون انجام می‌دیم، فراخوانی کنید، می‌تونه چیزی رو **return** کنه. و در این مورد، چیزی رو **return** می‌کنه.
پس یک **list** از آیتم‌ها رو **return** می‌کنه. پس اون وقت این **higherEqualTen** خواهد بود.
پس بیایید جلو بریم و فقط تمام اعداد خودمون رو نمایش بدیم. پس **"All numbers ten and higher in our list of numbers"** (تمام اعداد ده و بالاتر در **list** اعداد ما)، اوکی.
و من قراره از شر این **"unsorted list"** خلاص بشم.
خب در واقع بیایید اون رو نگه داریم تا بدونیم چه آیتم‌هایی در **list** داریم.
پس حالا بیایید این رو اجرا کنیم و خواهیم دید **"unsorted list"** ما **10، 5، 15، 3، 9، 25 و 18** هست. و بعد می‌گه **"all number"**.
اوکی، من **number ten and higher in our list numbers** رو فراموش کردم. پس می‌بینید **10، 15، 25 و 18**.
پس **5، 3، 9** ده و بالاتر نیستن.
پس اون‌ها بخشی از **list** جدیدی که ما ایجاد کردیم، نیستن. اوکی.
پس این چیزیه که اینجا اتفاق افتاد.
حالا در ویدیوی بعدی بیایید آنچه در اینجا اتفاق می‌افته رو تشریح کنیم.
اول، واقعاً اون رو درک کنید و بعد بریم سراغ اینکه **predicate** کمی بیشتر چیست، اوکی؟
پس برای این ویدیو کافیه.
همونطور که گفتم نگران نباشید. چیزی که اینجا دیدید رو گام به گام پوشش خواهیم داد. بسیار خب.
پس شما رو در ویدیوی بعدی می‌بینم.