collection ها در سی شارپ – جلسه اول

collection ها در سی شارپ – جلسه اول

  مشخصات آموزش

  •   مدت زمان 31 دقیقه
      حجم فایل 28 مگابایت
      زبان آموزش فارسی
  •   لینک دانلود

Cshrarp_Collections(queu & Stack)

با سلام  و تبریک پیشاپیش به مناسبت بهار طبیعت و سال نو.امروز فصل جدیدی از سی شارپ را شروع می کنیم و آن هم فصل collection ها در سی شارپ است.قاعدتا فصول قبلی یعنی  Delegate ها در C# و Generic ها و  این فصل collection ها در سی شارپ از پیشنیازهای دوره ی آموزشی تکنولوژی Linq & Entity Framework می باشد.

ما در این فصل به بررسی کامل مباحث زیر می پردازیم:

  • صف و پشته(Queue & Stack)
  • لیست(List)
  • لیست های مرتب (SortedList)
  • دیکشنری(Dictionary)
  • Hashset ها
  •  لیست پیوندی(LinkedList)
  • و…..

دانلود رایگان فیلم آموزشی collection ها در سی شارپ – جلسه اول

حجم فایل دانلود:28 مگابایت (نوع فایل:Zip)

مدت فیلم آموزشی:31 دقیقه (زبان فارسی)

collection ها در سی شارپ

در این جلسه در مورد صف و پشته (queue & stack) صحبت خواهیم کرد.

صف:ساختمان داده ای است که در آن هر عنصری که زودتر وارد صف شده است زودتر هم خارج می شود به عبارتی اصطلاحا FIFO (First In First Out( گفته می شود.اگر عنصری به صف اضافه شود این عنصر حتما به انتها اضافه می شود و اگر عنصری از صف برداشته شود این عنصر حتما از ابتدای صف برداشته می شود.

صف یک جنریک کلاس است.با جنریک ها در فصل قبل آشنا شدیم.در کد زیر ساختار جنریک کلاس Queue را که توسط مایکروسافت تعریف شده است مشاهده می کنید.همانطور  مبین است این کلاس دارای سه constructor است.اولین سازنده ، سازنده پیشفرض است و دو نسخه سربارگذاری شده دیگر یکی پارامتر capacity (اندازه) می گیرید و دیگر یک پارامتر که جنریک اینترفیس  IEnumerable<T>  را پیاده سازی کرده باشد.

namespace System.Collections.Generic
{
    // Summary:
    //     Represents a first-in, first-out collection of objects.
    //
    // Type parameters:
    //   T:
    //     Specifies the type of elements in the queue.
    [Serializable]
    [ComVisible(false)]
    [DebuggerDisplay("Count = {Count}")]
    [DebuggerTypeProxy(typeof(System_QueueDebugView<>))]
    public class Queue<T> : IEnumerable<T>, ICollection, IEnumerable
    {
        public Queue();
        public Queue(IEnumerable<T> collection);
        public Queue(int capacity);

        public int Count { get; }
        public void CopyTo(T[] array, int arrayIndex);
        public T Dequeue();
        public void Enqueue(T item);
        public Queue<T>.Enumerator GetEnumerator();
        public T Peek();
        public T[] ToArray();
        public void TrimExcess();

        [Serializable]
        public struct Enumerator : IEnumerator<T>, IDisposable, IEnumerator
        {

            public T Current { get; }
            public void Dispose();
            public bool MoveNext();
        }
    }
}
  •   property  این کلاس Count است که تعداد اعضای موجود در صف را بر می گرداند.

متد CopyTo این امکان را فراهم می کند که اعضای صف را به داخل یک ارایه کپی کنیم.

متد Dequeue یک عنصر از صف حذف می کند و بر می گرداند و طبق تعریف صف این عنصر از ابتدای صف هم حذف می شود.

متد Peek یک عنصر از ابتدای صف بر می گرداند و فرق آن متد Dequeue اینست که فقط عنصر ابتدای صف را بر می گرداند اما آنرا حذف نمی کند.

متد Enqueue یک عنصر به داخل صف اضافه می کند.

متد ToArray عناصر موجود در صف را به عنوان یک آرایه بازگشت می کند.

متد TrimExcess فضای خالی یک صف را حذف می کند.اما اگر تقریبا 90 درصد صف پر شده باشد دیگر این کار را انجام نمی دهد.

جهت بهره گیری کامل از مباحث مربوط به صف به فیلم آموزشی مراجعه شود.

پشته :ساختمان داده ای است که در آن هر عنصری که بالای پشته باشد زودتر بر داشته می شود و عنصری که در پشته درج شود به بالای پشته اضافه می شود.مثال معروف برای ساختمان داده پشته بشقاب ها یا کتاب های روی هم قرار گرفته شده است.قاعدتا کتابی که از همه بالاتر است هنگام بر داشته شدن اولین گزینه خواهد بود از طرفی اگر کتاب جدیدی قرار دهیم در بالای کتابها قرار خواهد گرفت.

namespace System.Collections.Generic
{
    // Summary:
    //     Represents a variable size last-in-first-out (LIFO) collection of instances
    //     of the same arbitrary type.
    //
    // Type parameters:
    //   T:
    //     Specifies the type of elements in the stack.
    [Serializable]
    [ComVisible(false)]
    [DebuggerDisplay("Count = {Count}")]
    [DebuggerTypeProxy(typeof(System_StackDebugView<>))]
    public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable
    {
        // Summary:
        //     Initializes a new instance of the System.Collections.Generic.Stack<T> class

        public Stack();
        public Stack(IEnumerable<T> collection);
        public Stack(int capacity);

        public int Count { get; }

        public void Clear();
        public bool Contains(T item);
        public void CopyTo(T[] array, int arrayIndex);
        public Stack<T>.Enumerator GetEnumerator();
        public T Peek();
        public T Pop();
        public void Push(T item);
        public T[] ToArray();
        public void TrimExcess();

        [Serializable]
        public struct Enumerator : IEnumerator<T>, IDisposable, IEnumerator
        {
            public T Current { get; }
            public void Dispose();
            public bool MoveNext();
        }
    }
}

با توجه به تعریف جنریک کلاس Stack توسط مایکروسافت می توانیم ببنیم که دارای متد های Peek,Pop,Push می باشد.

متد Push این امکان را فراهم می کند که بتوانیم یک عنصر جدید به بالای پشته اضافه کنیم.

متد Pop این امکان را فراهم می کند که بتوانیم یک آیتم از بالای پشته حذف و بازگشت دهیم.

متد Peek این امکان را فراهم می کند که بتوانیم یک ایتم  بالای پشته را فقط بازگشت کنیم.فرق آن با Pop در این است که عنصر بالای پشته را حذف نمی کند.

جهت بهره گیری کامل به فیلم آموزشی مراجعه شود.

۷ Responses to “collection ها در سی شارپ – جلسه اول”

  1. albert گفت:

    سلام جناب آقای عبدالله محمود زاده یه سوال داشتم میخواستم بدونم کسی بخواد سی شارپ یاد بگیره با آموزش های شما میتونه یا نه نیاز که یکسری چیزهارو بلد باشه  منظورم اینه که آموزش های شما در سطح مبتدیه یا حرفه ای؟؟؟  بعد یه چیز دیگه اینکه ببخشید البته دانلود ها یه جا نیست منظورم آموزش ها -ـموزش های سی شارپ جلساتش اینور اونور هریک جا نیست شایدم باشه ولی من نتونستم پیدا کنم اگه هست میشه لینکشو بدید؟؟ممنون  و در پایان آموزشاتون عالیه البته من تا اینجا فقط اکسسو دیدم که عالی بود  منتظر جوابتون هستم…

    • سید عبدالله محمودزاده گفت:

      آموزش های ما از سطح خیلی مقدماتی تا متوسط و حرفه ای است.البته بعضی از جلسات ابتدایی ضبط نشده یا روی سایت قرار نگرفته ولی با این وجود برای کسی که سی شارپ رو شروع می کنه خوبه.برای دیدن آموزش های سی شارپ کافی بود از Sidebar سمت راست برنامه نویسی=> WindowsApplication => سی شارپ رو انتخاب می کردید.
      از لینک زیر هم می توانید استفاده کنید.

  2. رعنا گفت:

    سلام
    لطفا پیاده سازی fifo رو با #C برا من ایمیل کنین (:yes:)
    بد جوری گیر افتادم خیلی ممنون میشم اگه بفرستید.

  3. رعنا گفت:

    مرسیییییییییییییییییییییییی
    اگه اشکال داشتم میتونم از طریق ایمیل ازتون بپرسم؟؟؟؟
    ایمیلتون؟؟؟

  4. رعنا گفت:

    آخه تو این فیلملا فقط درست کردن صف رو گفته من پیاده سازی الگوریتم fifo در سیستم عاملو میخوام
    خواهشن کمکم کنین

    • سید عبدالله محمودزاده گفت:

      الگوریتم FiFO=First in-First out که چیز سختی نیست.یعنی اونی که اول میاد اول هم کارش رسیدگی بشه و از صف خارج بشه.صف دقیقا همون الگوریتم Fifo رو داره.اما اگه خواستید خودتون پیاده سازی کنید.یک لیست یا آرایه تعریف کنید.هر وقت خواستید چیز جدیدی اضافه کنید به انتهای لیست اضافه کنید و هر وقت خواستید حذف کنید از ابتدا انجام دهید.همین.

      موفق باشید.

ارسال دیدگاه

نام (*)
پست الکترونیکی (*)
وبسایت

  مشخصات مدرس

سید عبدالله محمودزاده
دانش آموخته ی رشته ی مهندسی نرم افزار می باشد. زمینه ی تخصصی وی: برنامه نویسی Application ها ویندوزی به زبان C#.NET طراحی پایگاه داده (SQL server,MySQL,Access ) تکنولوژی های کار با منابع داده (ADO.NET,Linq,Entity Framework) برنامه نویسی وب (HTML5,CSS3,JavaScript,Jquery,Ajax,PHP,Jason) می باشد.

  دوره‌های پیشنهادی