مسیرها
/
C#
C#
/
تمرین‌ها
/
ترک روی ترک روی ترک
ترک روی ترک روی ترک

ترک روی ترک روی ترک

تمرین یادگیری

مقدمه

نوع جنریک

تعریف یک مجموعه معمولاً شامل یک جای‌نگهدار درون پرانتزهای زاویه‌ای است که طبق قرارداد اغلب T نامیده می‌شود. به چنین مجموعه‌ای «نوع جنریک» می‌گویند. این به کاربر مجموعه اجازه می‌دهد مشخص کند چه نوع عنصری را در مجموعه ذخیره کند. در کد نمونه‌ی زیر، یک لیست از رشته‌ها نمونه‌سازی می‌کنیم.

لیست

لیست در C# مجموعه‌ای از مقادیر اولیه یا نمونه‌هایی از ساختارها یا کلاس‌هاست. لیست در کتابخانه‌ی کلاس پایه به‌صورت List<T> پیاده‌سازی شده است که در آن T نوع عنصر درون لیست است. API مجموعه‌ی غنی‌ای از متدها را برای ساختن و دست‌کاری لیست‌ها در اختیار می‌گذارد.

می‌توان به لیست‌ها عنصر اضافه کرد و از آن‌ها حذف کرد. لیست‌ها بسته به نیاز بزرگ و کوچک می‌شوند.

var listOfStrings = new List<string>();

دستورالعمل‌ها

در این تمرین کدی می‌نویسید که فهرستی از زبان‌های برنامه‌نویسی را که می‌خواهید در Exercism یاد بگیرید، پیگیری کند.

نه کار در پیش دارید که همه‌شان با فهرست‌ها سر و کار دارند.

1. یک فهرست جدید بسازید

برای پیگیری زبان‌هایی که می‌خواهید یاد بگیرید، باید یک فهرست جدید بسازید.

متد استاتیک Languages.NewList() را پیاده‌سازی کنید که یک فهرست جدید و خالی برمی‌گرداند.

Languages.NewList()
// => empty list

2. یک فهرست موجود را تعریف کنید

در حال حاضر، تکه کاغذی دارید که زبان‌هایی را که می‌خواهید یاد بگیرید فهرست کرده است: C#، Clojure و Elm.

لطفاً متد استاتیک Languages.GetExistingLanguages() را پیاده‌سازی کنید تا این فهرست را برگرداند.

Languages.GetExistingLanguages();
// => {"C#", "Clojure", "Elm"}

3. یک زبان جدید به فهرست اضافه کنید

همان‌طور که Exercism را کاوش می‌کنید و زبان‌های جالب‌تری پیدا می‌کنید، می‌خواهید آن‌ها را به فهرستتان اضافه کنید.

تابع استاتیک Languages.AddLanguage() را پیاده‌سازی کنید تا یک زبان جدید به انتهای فهرستتان اضافه کنید.

Languages.AddLanguage(Languages.GetExistingLanguages(), "VBA");
// => {"C#", "Clojure", "Elm", "VBA"}

4. زبان‌های فهرست را بشمارید

شمردن زبان‌ها یکی‌یکی دردسر دارد.

متد استاتیک Languages.CountLanguages() را پیاده‌سازی کنید تا تعداد زبان‌های فهرستتان را بشمارید.

Languages.CountLanguages(Languages.GetExistingLanguages())
// => 3

5. بررسی کنید که آیا زبانی در فهرست هست

متد استاتیک Languages.HasLanguage() را پیاده‌سازی کنید تا بررسی کنید آیا زبانی وجود دارد.

Languages.HasLanguage(Languages.GetExistingLanguages(), "Elm")
// => true

6. فهرست را برعکس کنید

یک جایی متوجه می‌شوید که فهرستتان در واقع برعکس مرتب شده است!

متد استاتیک Languages.ReverseList() را پیاده‌سازی کنید تا فهرستتان را برعکس کنید.

Languages.ReverseList(Languages.GetExistingLanguages())
// => {"Elm", "Clojure", "C#"}

7. بررسی کنید که فهرست هیجان‌انگیز است یا نه

با اینکه همه‌ی زبان‌ها را دوست دارید، C# جایگاه ویژه‌ای در قلب شما دارد. به همین دلیل، اگر یکی از شرط‌های زیر برقرار باشد، از یک فهرست زبان واقعاً هیجان‌زده می‌شوید:

  • اولین عنصر فهرست C# است.
  • دومین عنصر فهرست C# است و فهرست شامل دو یا سه زبان است.

متد استاتیک Languages.IsExciting() را پیاده‌سازی کنید تا بررسی کنید که یک فهرست زبان هیجان‌انگیز است یا نه:

Languages.IsExciting(Languages.GetExistingLanguages())
// => true

8.حذف زبان

لطفاً متد استاتیک Languages.RemoveLanguage() را پیاده‌سازی کنید تا زبانی مشخص را از فهرست حذف کنید.

Languages.RemoveLanguage(Languages.GetExistingLanguages(), "Clojure")
// => { "C#", "Elm" }

9. بررسی کنید که همه‌ی زبان‌های فهرست یکتا هستند

لطفاً متد استاتیک Languages.IsUnique() را پیاده‌سازی کنید تا بررسی کنید که آیا هیچ‌یک از زبان‌ها در فهرست تکرار شده است.

تضمین می‌شود که فهرست زبان‌ها (یعنی پارامتر) هنگام فراخوانی این متد خالی نباشد و تغییر فهرست اهمیتی ندارد.

Languages.IsUnique(Languages.GetExistingLanguages())
// => true
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
C# Exercism

آماده‌اید ترک روی ترک روی ترک را شروع کنید؟

در Exercism ثبت‌نام کنید تا C# را همراه با 62 مفهوم178 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.