Master Collection Classes in C#

Teach yourself all major collection classes

Instructed by Kaushik Roy Chowdhury

2 days left at this price! Buy Now

30-Day Money Back Guarantee

Full Access to this course
Play & Pause Videos
High Quality Recorded Lectures 24
Learn Online from Mobile/PC/Tablet
Download Course for Offline Viewing
Inlcudes Real Projects
Lifetime access & free updates
Certificate of Completion
Free Instructor Support

$9 /month

Buy Subscription See all plans
  • Access to all marketplace courses
  • Access to all new courses
  • Play & Pause Videos
  • High Quality Recorded Lectures
  • Learn Online from Mobile/PC/Tablet
  • Download Course for Offline Viewing
  • Inlcudes Real Projects
  • Certificate of Completion
  • Free Instructor Support

$299 /month

Buy Subscription See all plans
  • Access to all marketplace courses
  • Access to all new courses
  • Play & Pause Videos
  • High Quality Recorded Lectures
  • Learn Online from Mobile/PC/Tablet
  • Download Course for Offline Viewing
  • Inlcudes Real Projects
  • Certificate of Completion
  • Free Instructor Support
  • The course imparts theoretical and practical knowledge of using collection classes: non-generic, generic, concurrent and specialized collections in C# through presentations and walking through hands-on coding in Visual Studio.
  • Hands-on experience on coding as well as unit testing of C# methods used in collection classes.
  • Learn how to gather information of generic types at run-time through reflection in C#, all through hands-on coding walkthrough.
  • As a build up to the collection classes, bonus introductory lectures on abstract class and interface in C# is available for those who require knowledge on Object Oriented concepts which are foundation blocks for the collection class.
  • As a bonus, students will learn and build a windows form application where they will apply the collection class concepts
  • Students will learn to build a CRUD app using Microsoft SQL server and C# that relates to generic collection classes

This course covers the Non-Generic, Generic, Concurrent and Specialized Collection classes in C#. The course includes important concept building topics in Reflection, Multi-threaded applications (with thread safety), Asynchronous Programming and Object-Oriented concepts of Interfaces and Abstract Class that the students need to grasp in order to get the full benefits from the course. Several coding exercises, an assignment, and a mini-project are aimed to keep the students engaged with the contents. These exercises are also means of self-assessing the progress with the course. A number of bonus articles and lectures have been added to enhance the learning process in related technologies. 

  • Students should ideally have Visual Studio 2017 Community Edition (or later) installed on a laptop/desktop. SQL Server 2017 Express/Developer (or later) would also be desirable. Both are free software from Microsoft. Some basic knowledge of C# or any other object oriented programming will be advantageous. Some prior exposure to Visual Studio IDE will make this course a breeze.
  • Advanced beginners in programming , computer science/engineering students to practicing professionals (who would like to brush up their skills), existing developers migrating to C# from other languages. However absolute beginners are also welcome if they are willing to catch up with basic programming concepts such as use of variables, decision statements and iteration loops.
View More...

Section 1 : Course Introduction

  • Lecture 1 :
  • Introduction to the course Preview
  • This is an overview of the full course. This lecture will introduce the students to the instructor. The contents of this lecture provide the highlights of the course including the mention of the code exercises, mini-project and essential concepts that are also covered as a part of the foundation required for learning the concepts of the collection in C#. After going through the course, they will have full appreciation of contents including downloadable codes and other files, external links as resources.
  • Lecture 2 :
  • A note on string interpolation and var keyword
  • This is a text lecture aiming to serve as a note for the students so that they are aware of the usage of these concepts in code. This will enlighten them to the newer features of the C# language being available for use which are the current best practices in C# language.
  • Lecture 3 :
  • Downloading and Installation of Visual Studio
  • This is the download and installation procedure for Visual Studio IDE. The students will be able to download and install the Visual Studio Community (free) version and be ready to code.

Section 2 : Introduction to C# Collections

  • Lecture 1 :
  • Introduction to Collections and their Objectives
  • This is the introductory lecture on the Collections as a whole. The lecture discusses the objectives behind the use of the collection classes in C#. The students will be able to have an overview of the various collection types in C#.

Section 3 : Some Object Oriented Concepts

  • Lecture 1 :
  • An Introduction to Interfaces in C#
  • Lecture 2 :
  • Abstract classes in C#
  • A  tutorial on the abstract class concept in C# programming language. For beginning level learners in C# having little or no knowledge of object oriented concepts, it is important to understand the abstract class concept to grasp the fundamentals on collection classes, since some of these use abstract classes. After completing this tutorial, they will be able to do the following: 1 Create a simple abstract class in C# code using Visual Studio 2 Create classes that implement the abstract class in C# code
  • Lecture 3 :
  • Abstract Classes Code Project
  • This is the continuation of the on going abstract class console application started in the previous lecture. This lecture works with hands-on coding in Visual Studio 2017 and concludes with testing the application after completing the derived classes code.
  • Lecture 4 :
  • Introduction to Reflection in C#
  • This lecture introduces the concept of reflection to access metadata class information at runtime. This is a foundation topic to build the concept for the latter part of this section using reflection and generic collection class List for building an app whose methods are reusable.
  • Lecture 5 :
  • Accessing Metadata Information through Reflection
  • This is the second of series of lectures on reflection and introduces the GetType() method and typeof keyword for a class. It also introduces the Type (abstract) class and shows the use of PropertInfo(), MethodInfo() and ConstructorInfo() methods to the students.
  • Lecture 6 :
  • Early and Late Binding Using Reflection
  • This is a tutorial video on early binding vs late binding in C# using reflection.  On completion of this lecture, the students will know about a major practical application of reflection which is the use of late binding through reflection to access the types and objects that are not available at compile time to the application.

Section 4 : Non-Generic Collection Classes (ArrayList)

  • Lecture 1 :
  • Section Introduction
  • Students will be able to know about the ArrayList class within C# non-generic collection.
  • Lecture 2 :
  • Arrays and Non-Generic Classes
  • This lecture shows the use and comparison of an Array with an ArrayList class. The lecture uses a user defined employee class to fill both of them. Students will learn how ArrayList can grow in size dynamically and that they require unboxing to retrieve the value, whereas Arrays are of fixed size at design time and they don't require unboxing.
  • Lecture 3 :
  • ArrayList Properties and Methods
  • This lecture shows how to use count and capacity properties in an ArrayList instance. It also shows the usage of some commonly used methods as Remove(), Sort() and Reverse(). Students will be able to use these properties and methods in C# code.
  • Lecture 4 :
  • ArrayList Methods
  • This lecture shows how to use some commonly used method as AddRange() to add the elements of a collection to the end of the ArrayList Show how to use GetRange() method to return an ArrayList which represents a subset of the elements in the source ArrayList. Students will be able to use these methods in C# code in a real-life scenario.
  • Lecture 5 :
  • More ArrayList Methods and Partial Class Usage
  • Downloadable: This lecture shows how to use some commonly used method as RemoveAt(), RemoveRange() and IndexOf() methods. Students will be able to use these methods in C# code in a real-life scenario.
  • Lecture 6 :
  • Coding Exercise Overview
  • The students will know the basics of Test Driven Development with a short overview of unit testing. They will have an idea about the coding exercise to follow.
  • Lecture 7 :
  • Coding Exercise Solution Walkthrough
  • This is the coding exercise solution walkthrough.

Section 5 : Non-Generic Collection Classes (HashTable)

  • Lecture 1 :
  • Hashtable in C#
  • This lecture is an introduction to the non-generic hashtable class that is included in the System.Collections namespace. It highlights the key-value pair and other features of the hashtable class. The lecture emphasizes the need to frequently refer to the MS-Documentation link provided in the resources. This documentation is full of the knowledge base about a collection class, all properties, methods, constructors, etc with working sample code.
  • Lecture 2 :
  • Hashtable methods
  • This lecture shows the usage of Add(), ContainsKey() and Remove() methods. Shows the use of Keys, Value of the DictionaryEntry class. It shows the use of indexer to get and set the key values
  • Lecture 3 :
  • More Hashtable Properties and Methods
  • This tutorial shows how to get the keys alone and values alone with the ICollection interface. It also shows the usage of the Remove method once more in Hashtable class. Students will be able to further their learning with the use of these concepts.

Section 6 : Bonus: Create and Use a Windows Form Application for Managing Collections

  • Lecture 1 :
  • Create a Windows Form Application With Controls - Part 1
  • Students will be able to design and create a simple Windows Form Application in C#. They will be able to align, resize and change commonly used properties of the controls.
  • Lecture 2 :
  • Extend the Windows Form Application and Code a Button Event Handler - Part 2
  • Students will learn the process of adding event handlers to the button controls and write code in the event handler. They will be able to change the properties of the controls programmatically at run time. The students will learn how to handle exceptions and validate a control.
  • Lecture 3 :
  • Conclude Windows Form Application and Code the Button Click Events - Part 3
  • The students will learn to code the button event handlers for rest of the buttons to test AddRange(), RemoveAt() and Insert() methods through the Windows Form user interface(UI). This will complete the bonus WinForm application through which the students will learn how to build a Windows Form application and receive user inputs to create an ArrayList collection and test the different methods of that collection.

Section 7 : Introduction to Generics and Generic Collection Classes

  • Lecture 1 :
  • Fundamentals of Generics
  • This lecture deals with Generics that were introduced C# version 2 and advises that the most common use of the Generic concept is in Generic collection classes. The lecture stresses the use of type parameters which gets rid of boxing and unboxing processes used in non-generic classes like ArrayList, Hashtable. The lecture introduces and describes in detail about the constraints in generics.

Section 8 : Generic Collection Classes (List)

  • Lecture 1 :
  • List Introduction
  • This is an introductory lecture on List class which is generic collection class. List is a generic equivalent of non-generic ArrayList class. Students will understand the uses and advantages of using strongly typed List generic class which is better performance wise as compared to ArrayList class. In the forthcoming lectures in the section they will see for themselves that using List ends up in code  re-usability.
  • Lecture 2 :
  • List Use of Some Common Methods - Part 1
  • After completion of this lecture, students will be able to use Add() and Insert() methods for List generic collection class.
  • Lecture 3 :
  • List Use of Some Common Methods - Part 2
  • After completion of this lecture, students will be able to use IndexOf() and Contains() methods for List generic collection class.
  • Lecture 4 :
  • List Use of Some Common Methods - Part 3
  • After completion of this lecture, students will be able to use Exists() and Find(), FindIndex(), FindLast() and FindAll() methods for List generic collection class.
  • Lecture 5 :
  • List Count and Capacity Properties
  • This lecture covers the Count and Capacity properties of List class and also teaches the use of TrimExcess() method. After attending the lesson, the students will be able to use these properties for a List class in practical scenarios.
  • Lecture 6 :
  • Bonus Ex 1: Create a Console Text File Processor Application (Without Generics)
  • The students will learn the List class for creating and managing collections in C# The students will be able to create text file processor class to create, write to and load text files from the file system at a given path. They will appreciate how the non-generic way of doing the above steps end up in repetitive coding which is avoidable.
  • Lecture 7 :
  • Bonus Ex 2: Modify the Text File Processor to Use Generics and Reflection
  • This is the concluding lecture of the bonus lectures in this Section. It builds upon the previous lecture of building a Text File Processor app and introduces generics (with reflection) to prove the point that it's a better approach and follows the DRY principles of Software Engineering.
  • Lecture 8 :
  • Creating a CRUD application with List and Microsoft SQL Server - Part 1
  • The students will be able to create a database, add table and stored procedures to the database using MS-SQL
  • Lecture 9 :
  • Creating a CRUD application with List and Microsoft SQL Server -Part 2
  • This is the second and concluding part of the List CRUD application Using MS-SQL Server. In this lecture the students will learn how to create the connection string in Visual Studio (ASP.NET Core console application), write methods to connect to the SQL database and insert, select and delete database records from Person table using stored procedures.

Section 9 : Generic Collection Classes (Dictionary)

  • Lecture 1 :
  • Introduction to Dictionary Class
  • This is an introduction to the dictionary generic collection class. It enlightens about the various methods used in this class.
  • Lecture 2 :
  • Dictionary Class - Add Method and Count Property
  • This lecture shows how to work with the Add method and Count property of a Dictionary class collection. Hands-on coding on Visual Studio will give the students coding practice.
  • Lecture 3 :
  • Dictionary Class - TryGetValue and Remove Methods
  • This lecture shows the students the usage of TryGetValue() and Remove() methods of the generic Dictionary class. The students will understand these methods and be able to use them in code.
  • Lecture 4 :
  • Converting an Employee Array and List Collection to Dictionary
  • This lecture teaches the ways to convert an employee objects Array and List of employee class objects to Dictionary collection.

Section 10 : Queue and Stack Class

  • Lecture 1 :
  • Introduction to Queues and Stacks - Generic Collection
  • After going through this lecture, students will be able to know two important data structures LIFO - Last In First Out and FIFO- First In First Out. They will learn about the important operations in both of these data structures.
  • Lecture 2 :
  • Queue Class - More Coding in Visual Studio
  • This is focused on discussing the practical application of Generic Queue class and clears concepts on commonly used operations. The tutorial proves with code the workings of some commonly used Queue class methods like Enqueue(), Dequeue() and Peek(). After completing this lecture the students will be able to use these methods in practical coding with C#.
  • Lecture 3 :
  • Stack Class - An Examination with Examples
  • This lecture gives an overview of the Stack generic class. The students will be able to learn the Stack data structure concepts and some applications of Stack in real life.
  • Lecture 4 :
  • Stack Class - More Coding in Visual Studio
  • Lecture 5 :
  • Mini Project - Practical Application of Generic Queue Class
  • A practical daily life example of customer services representatives serving a group of customers in queue possessing token numbers. This provides an example of Queue class usage to build an useful app. After going through this lecture the students will be able to understand the logic behind the project and build a Windows Form in C# as the GUI.
  • Lecture 6 :
  • Mini Project - Coding, Debugging and Running the App
  • This is the concluding part of the Mini Project. In this part, the instructor walks through the code for the GUI designed and developed in the earlier lecture for this project. After going through this tutorial, the students will be able to know the implementation of the business logic in a useful but simple Windows application.

Section 11 : Generic Comparer Class for Sorting and Comparing Objects of User Defined Types

  • Lecture 1 :
  • Comparer Class for Sorting C# User Types
  • This lecture discusses generic Comparer class for sorting objects of user types in C#. The students will be able to use a custom sort mechanism on objects of user-defined types and use in practical C# applications.
  • Lecture 2 :
  • Comparer Class for Comparing C# User Types
  • This lecture discusses generic Comparer class for comparing objects of user types in C#. The students will be able to use a custom comparison mechanism on objects of user defined types and use in practical C# applications.

Section 12 : Performance Comparison Between Generic List and Non-Generic ArrayList Class

  • Lecture 1 :
  • Compare the Performance between List and ArrayList Class with Demo App
  • At the end of this lecture students will be able to know how to make a performance comparison between these two types of collections, generic collections vs non generic collections. They'll be able to appreciate behind using generic collections exclusively over their non-generic counterparts due to the performance benchmarks among other characteristics.

Section 13 : Concurrent Collection Classes

  • Lecture 1 :
  • Why and Where Concurrent Collections are Required? - Part 1
  • This lecture introduces the Concurrent Collection class in C# used for multi-threaded applications where many threads attempt to access the same collection. It also provides the important concept of threads and thread safety as a background for understanding the main topic of Concurrent Collections. The students will be able to know the deadlock and  race conditions in multi-threaded applications which are the effects of writing thread-unsafe applications. They'll be able to code a simple application that simulates a race condition.
  • Lecture 2 :
  • Why and Where Concurrent Collections are Required? - Part 2
  • This lecture is a continuation to the previous lecture and builds on the concept of deadlock learnt therein and illustrates it in code. It shows a simulation of deadlock situation in C# code. The students will be able to know what simulates a deadlock situation and will be able to appreciate the need to introduce a separate concurrent collection class to offset the issues faced.
  • Lecture 3 :
  • Asynchronous Programming Fundamentals
  • This is an introductory lecture on asynchronous programming and it discusses the practical example of making breakfast as an asynchronous operation. The students after attending the lecture will learn how to use async and await keywords to create an asynchronous method.
  • Lecture 4 :
  • ConcurrentBag Collection Class
  • This lecture introduces the ConcurrentBag class within the System.Collections.Concurrent namespace. It provides a brief introduction to the class with some common methods and properties. The lecture shows hands-on coding in Visual Studio to build a working console app with ConcurrentBag class. Students will be able to understand the need to use this class and how to use this class in code in a practical scenario.
  • Lecture 5 :
  • ConcurrentDictionary Collection Class - Part 1
  • This is the first part of the ConcurrentDictionary class lectures. It gives a sound introduction about the ConcurrentDictionary class which includes the commonly used methods and goes on to use the methods with hands in coding in Visual Studio. The students will have a good understanding of this class in a practical scenario. They will also be able to code to demonstrate thread safety with the usage of ConcurrentDictionary class.
  • Lecture 6 :
  • ConcurrentDictionary Collection Class - Part 2
  • ConcurrentDictionary Collection Class - Part 2
  • Lecture 7 :
  • BlockingCollection Collection Class - Part 1
  • This lecture gives a brief overview of the BlockingCollection collection class. This is also a concurrent collection class and follows a producer - consumer pattern and like other classes in the concurrent collection is ideal for multithreaded applications in which different threads are trying to change the same collection instance. The students will be able to write code using the various common methods of this class like Add(), TryAdd(), Take() and TryTake() after taking this lecture.
  • Lecture 8 :
  • BlockingCollection Collection Class - Part 2
  • This lecture continues with the BlockingCollection collection class introduced earlier. The students will be able to write code using some more common methods of this class like after taking this lecture.like CompleteAdding(), GetConsumingEnumerable(). These code usages are valid in practical daily life applications and will impart the students with the requisite knowledge to face the developer requirements in the industry.

Section 14 : Specialized Collection Classes

  • Lecture 1 :
  • Introduction to Specialized Collection with CollectionsUtil class Methods
  • This lecture introduces Specialized collection classes included in System.Collections.Specialized namespace. It highlights some of the classes and their specialized functions. The lecture concludes with usage of two methods in CollectionsUtil class within this category. The students will be able to use the CollectionsUtil class and its methods and apply to a real life scenario.
  • Lecture 2 :
  • StringCollection Class and Usage of the Class Methods - Part 1
  • This is the first of a two part lecture series on StringCollection class which is a part of the Specialized collections and included in the System.Collections.Specialized namespace. The lecture covers an overview of the Specialized collection class. In this part some commonly used methods of this class are demonstrated with coding in Visual Studio and results analysed. The students will be able to use these methods in a real life scenario while using the StringCollection class. They will know the areas where StringCollection class could be used.
  • Lecture 3 :
  • StringCollection Class and Usage of the Class Methods - Part 2
  • This is the second and concluding part of a two part lecture series on StringCollection class which is a part of the Specialized collections and included in the System.Collections.Specialized namespace.  In this part a few more commonly used methods of this class are demonstrated with coding in Visual Studio and results analysed. The students will be able to use these methods in a real life scenario while using the StringCollection class, besides knowing about this class in some detail. They will know the areas where StringCollection class could be used.
  • 1. How do i access the course after purchase?

    Once you purchase a course (Single course or Subscription), you will be able to access the courses instantly online by logging into your account. Use the user name & password that you created while signing up. Once logged in, you can go to the "My Courses" section to access your course.
  • 2. Are these video based online self-learning courses?

    Yes. All of the courses comes with online video based lectures created by certified instructors. Instructors have crafted these courses with a blend of high quality interactive videos, lectures, quizzes & real world projects to give you an indepth knowledge about the topic.
  • 3. Can i play & pause the course as per my convenience?

    Yes absolutely & thats one of the advantage of self-paced courses. You can anytime pause or resume the course & come back & forth from one lecture to another lecture, play the videos mulitple times & so on.
  • 4. How do i contact the instructor for any doubts or questions?

    Most of these courses have general questions & answers already covered within the course lectures. However, if you need any further help from the instructor, you can use the inbuilt Chat with Instructor option to send a message to an instructor & they will reply you within 24 hours. You can ask as many questions as you want.
  • 5. Do i need a pc to access the course or can i do it on mobile & tablet as well?

    Brilliant question? Isn't it? You can access the courses on any device like PC, Mobile, Tablet & even on a smart tv. For mobile & a tablet you can download the Learnfly android or an iOS app. If mobile app is not available in your country, you can access the course directly by visting our website, its fully mobile friendly.
  • 6. Do i get any certification after completing the course?

    Yes. Once you succesfully complete any course on Learnfly marketplace, you get a certiifcate of course completion emailed to you within 24 hours with your name & the Learnfly badge. You can definately brag about it & share it on your social media or with friends as one of your achievement. Click here to view the sample certificate Click Here
  • 7. For how long can i access my course after the purchase?

    If you buy a single course, that course is accessible to you for a lifetime. If you go for a premium subcription, you can access all the courses on Learnfly marketplace till your subscription is Active.
  • 8. Whats the difference between Single Course Purchase & Go Premium option?

    With Single Course Purchase, you only get an access of one single course. Whereas, with premium monhtly or annual subscription, you can access all the existing or new courses on learnfly marketplace. You can decide what option suits you the best and accordingly you can make your purchase.
  • 9. Is there any free trial?

    Currently, we don't have any free trial but it may be available in near future.
  • 10. What is the refund policy?

    We would hate you to leave us. However, if you are not satisfied, you can ask for a full refund within 30 days & we will be happy to assist you further.

Kaushik Roy Chowdhury,

I am Kaushik Roy Chowdhury from Christchurch, New Zealand (God’s own country) whose main passion in life is all about software education, teaching and mentoring. I am a Microsoft Certified Professional (MCP). I have a Master's degree in Computer Science (from AUT University, Auckland) which is accompanied by more than 15 years of commercial experience working in several assignments for companies in New Zealand. I have also taught extensively in tertiary institutions in programming languages such as C#, Java, C. My vision statement is Software consultation, mentoring, learning and teaching new technologies. Every day I do what I love most: Learning new technologies and tools related to software development and translate this knowledge for creating useful and engaging e-learning materials for willing learners. I have been to mentor and train young and intelligent minds with the cutting edge technologies that will enable them to enjoy a great career path and settle in the pursuit of a great profession.  
View More...
google-tensorflow-hands-on-with-python-latest

Google TensorFlow Hands on with Pyt...

By : UNP United Network of Professionals

Lecture 51

create-your-own-programming-language-from-scratch

Create your OWN Programming Languag...

By : Harshit Srivastava

Lecture 6

learn-elixir-programming-from-zero-to-hero

Learn ELIXIR programming from Zero ...

By : Pranjal Srivastava

Lecture 35

getting-started-with-coding

Getting started with coding

By : Devansh Varshney

Lecture 27

superb-python-course-become-certified-python-developer

Superb Python Course - Become Certi...

By : Paul Carlo Tordecilla

Lecture 91

c-from-the-beginning

C# from the beginning

By : Igor Evdokimov

Lecture 31

Buy

Sign up and start learning
By signing up, you agree to our Terms of Use and Privacy Policy
Forget Password