</>مدرسه زیب‌موجیاد بگیر، تمرین کن، بساز
مدرسهC#درس 3
درس 3 از 8 · ۶۰ دقیقه

Collection و LINQ؛ پرس‌وجوی خوانا روی داده

List، Dictionary و عملیات LINQ مانند Where، Select و Sum را برای گزارش سفارش‌ها به‌کار می‌بری.

۰امتیاز شما
نقشه این درس

بعد از این درس چه کاری می‌توانی انجام بدهی؟

  • مجموعه generic بسازی
  • داده را با LINQ فیلتر و تبدیل کنی
  • اجرای deferred را آگاهانه مدیریت کنی
به زبان زندگی واقعی

C# را ساده بفهم

C# مثل یک کارگاه مهندسی با قراردادهای روشن است؛ نوع‌ها، کلاس‌ها و interfaceها کمک می‌کنند اجزای اپ، وب‌سرویس یا بازی جدا اما هماهنگ کار کنند.

نکته مهم برای شروع C#

LINQ خوانا است، اما query پیچیده را به چند متغیر نام‌دار تقسیم کن و هزینه تکرار enumeration را بسنج.

چرا مهم است؟ فهرست مرتب از یک نوع مشخص است.

اولین تمرین تو: سفارش‌های بالاتر از ۳۵۰۰۰۰ را جدا و بر اساس مبلغ نزولی مرتب کن.

توضیح ساده و قدم‌به‌قدم

از یک مثال کوچک شروع کن

LINQ روی IEnumerable<T> اغلب deferred است؛ یعنی پرس‌وجو هنگام پیمایش اجرا می‌شود. اگر نتیجه باید در همان لحظه ثابت شود از ToList یا ToArray استفاده کن. زنجیره را کوتاه و نام‌دار نگه دار تا هدف کسب‌وکار پشت چند operator گم نشود.

1

۱. مدل typed بساز

Order شناسه، مبلغ و وضعیت پرداخت دارد.

2

۲. فیلتر کن

Where فقط سفارش‌های پرداخت‌شده را نگه می‌دارد.

3

۳. جمع و materialize

Sum مقدار را محاسبه و ToList نتیجه را ثابت می‌کند.

نکته مهم

LINQ خوانا است، اما query پیچیده را به چند متغیر نام‌دار تقسیم کن و هزینه تکرار enumeration را بسنج.

مفهوم‌های اصلی

سه قطعه‌ای که باید بفهمی

List<T>

فهرست مرتب از یک نوع مشخص است.

Dictionary<K,V>

دسترسی کلیدی به مقدار می‌دهد.

LINQ

پرس‌وجو را به‌عنوان ساختار typed داخل زبان فراهم می‌کند.

سناریوی واقعی

گزارش سفارش‌های پرداخت‌شده

مدیر فروش فقط سفارش‌های پرداخت‌شده را می‌خواهد و باید جمع آن‌ها را ببیند. LINQ این جریان را به چند عمل خوانا تقسیم می‌کند.

ورودی روشنیک تغییر کوچکنتیجه قابل سنجش
بازی ساختن کد

قطعه‌ها را به ترتیب درست بچین

روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمه‌های جابه‌جایی هم می‌توانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.

مرحله ۲ از ۳ · مرتب‌کردن کد
بانک قطعه‌هاقطعه مناسب را انتخاب کن
ترتیب پاسخ تواز بالا به پایین اجرا می‌شود

    هنوز پاسخی بررسی نشده است.

    کارگاه تعاملی

    بررسی ساختار تمرین

    این صفحه کامپایلر کامل C# نیست؛ ساختار تمرین را صادقانه بررسی می‌کند و خروجی مورد انتظار را نشان می‌دهد. برای اجرای کامل به محیط رسمی همان زبان نیاز است.

    OrderReport.cs
    خروجیآماده
    یک بخش را تغییر بده و دکمه بررسی را بزن.
    بعد از هر تغییر، نتیجه را دوباره بررسی کن.
    تمرین هدایت‌شده

    سفارش‌های بالاتر از ۳۵۰۰۰۰ را جدا و بر اساس مبلغ نزولی مرتب کن.

    دام‌های رایج

    این سه اشتباه را انجام نده

    1

    اجرای چندباره query پرهزینه

    2

    استفاده از collection غیر generic

    3

    زنجیره LINQ طولانی بدون نام مرحله

    سنجش چندمرحله‌ای

    با 5 سؤال مطمئن شو که مفهوم را گرفته‌ای

    سؤال 1 از 5

    Where چه کاری می‌کند؟

    سؤال 2 از 5

    ToList چه اثری دارد؟

    سؤال 3 از 5

    مزیت LINQ نسبت به رشته query خام چیست؟

    سؤال 4 از 5

    کدام روش نشان می‌دهد این درس را واقعاً فهمیده‌ای؟

    سؤال 5 از 5

    کدام رفتار احتمال خطا را در همین موضوع بیشتر می‌کند؟

    پایان درس 3

    فهمیدی، تغییر دادی، نتیجه را توضیح دادی؟

    فقط در این صورت درس را کامل کن و سراغ مرحله بعد برو.