Thursday 7 May 2015

How to use C# List Class in System.Collections.Generic namespace ?

One of the classes introduced by the System.Collections.Generics namespace is named List. This is probably the most commonly used generic class of the .NET Framework. It is primarily the  System.Collections.Generics equivalent of the System.Collections's ArrayList. It allows you to create a list of any kind of value.

List < T > Class
The Collection classes are a group of classes designed specifically for grouping together objects and performing tasks on them. List class is a collection and defined in the System.Collections.Generic namespace and it provides the methods and properties like other Collection classes such as add, insert, remove, search etc.

The C# List < T > class represents a strongly typed list of objects that can be accessed by index and it supports storing values of a specific type without casting to or from object.

Syntex how to create List object:-
          List<OblectType> ItemList = new List<OblectType>();
Operations with parameters :-
             ItemList.Add(Object)
             ItemList.InsertAt(Index, Object)
             ItemList.Remove(Object)
             ItemList.RemoveAt(Index)
   int Count=ItemList.Count;
             ItemList.Sort()
             ItemList.ToArray()


Source code:-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleAppDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List_Operations classObj = new List_Operations();
            while (true)
            {
                // Console.Clear();
                Console.WriteLine("\n");
                Console.WriteLine("1. Add an Item");
                Console.WriteLine("2. Insert Item at any position");
                Console.WriteLine("3. Remove Item by using Name");
                Console.WriteLine("4. Remove Item by using Index");
                Console.WriteLine("5. Display List Items");
                Console.WriteLine("6. Sort List Items");
                Console.WriteLine("7. Copy List Items into Array");
                Console.WriteLine("8. Exit");
                Console.Write("Select your choice: ");
                int choice = Convert.ToInt32(Console.ReadLine());
                switch (choice)
                {
                    case 1:
                        classObj.Add();
                        break;

                    case 2: classObj.InsertItem();
                        break;

                    case 3: classObj.RemoveItem();
                        break;

                    case 4: classObj.RemoveItemAt();
                        break;
                  
                    case 5: classObj.Display();
                        break;

                    case 6: classObj.SortList();
                        break;

                    case 7: classObj.CopyToArray();
                        break;

                    case 8: System.Environment.Exit(1);
                        break;
                }
                Console.ReadKey();
            }
        }
    }


    public class List_Operations
    {
        string item;
        List<string> ItemList = new List<string>();

        // Add an Item ti List
        public void Add()
        {
            Console.WriteLine("\nEnter a Item to Add");
            item = Console.ReadLine();
            ItemList.Add(item);
             Console.Write("\nAdded successfully! \n");
        }
         

        //insert an item into List
        public void InsertItem()
        {
             Console.Write("\nEnter the position to insert an Item: \n");
             int index= int.Parse(Console.ReadLine());
             Console.Write("\nEnter the value to Insert: \n");
             string value= Console.ReadLine();
             ItemList.Insert(index, value);
             Console.Write("\nInserted successfully! \n");
        }


        //sort itemms in the List
        public void SortList()
        {
            ItemList.Sort();
            Console.Write("\nAfter shorting ArrryList: \n");
            for(int i=0; i < ItemList.Count-1; i++)
            {
               Console.Write(ItemList[i]);
               Console.Write("\n");
            }
        }

        //remove an item at any given position
        public void RemoveItemAt()
        {
            Console.Write("\nEnter the position to Remove an Item: \n");
            int index= int.Parse(Console.ReadLine());
            ItemList.RemoveAt(index);
            Console.Write("\nItem Removed successfully!: \n");
           
        }

        //remove an item
        public void RemoveItem()
        {
            Console.Write("\nEnter Item name to Remove an Item: \n");
            string item = Console.ReadLine();
            ItemList.Remove(item);
            Console.Write("\nItem Removed successfully!: \n");

        }

        //Copy  items into Array
        public void CopyToArray()
        {
            string[] arr = new string[ItemList.Count];
            arr = ItemList.ToArray();
            Console.Write("\nItem copied successfully!: \n");

        }

        // Display Items in the List
        public void Display()
        {
            Console.Write("\nItems in the List are: \n");
            for(int i=0; i <= ItemList.Count-1; i++)
            {
               Console.Write(ItemList[i]);
               Console.Write("\n");
            }
        }
      
    }
}

Output:-

Listing:- 1






































Continue Listing:- 2





































Continue Listing:- 3





































Continue Listing:- 4





































Continue Listing:- 5

Wednesday 6 May 2015

How to use Stack using System.Collections.Genrics NameSpace ?

Stack is used when you need a last-in, first-out access of items. When you add an item in the list, it is called pushing the item and when you remove it, it is called popping the item.

The Stack class represents a last-in-first-out (LIFO) Stack of Objects. Stack follows the push-pop operations. That is we can Push (insert) Items into Stack and Pop (retrieve) it back . Stack is implemented as a circular buffer. It follows the Last In First Out (LIFO) system. That is we can push the items into a stack and get it in reverse order. Stack returns the last item first. As elements are added to a Stack, the capacity is automatically increased as required through reallocation.

Methos of Stack:-












Property of Stack:-





Type Safety

One of the most significant features of Generics is Type Safety. In the case of the non-generic ArrayList class, if objects are used, any type can be added to the collections that can sometimes result in a great disaster. The following example shows adding an integer, string and object to the collection of Stack<> type;

Stack<int> stObj1 = new Stack<int>();
stObj .Add(100);
Stack<string> stObj = new Stack<string>();
stObj .Add("Item1");
Stack<Object> stObj2 = new Stack<Object>();
stObj .Add(New ClassEmp());



Source Code:-

using System;
using System.Collections.Genrics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleAppDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            stackOperations classObj = new stackOperations();
            while (true)
            {
               // Console.Clear();
                Console.WriteLine("\n");
                Console.WriteLine("1. Add an element");
                Console.WriteLine("2. See the Top element.");
                Console.WriteLine("3. Remove top element.");
                Console.WriteLine("4. Display stack elements.");
                Console.WriteLine("5. Exit");
                Console.Write("Select your choice: ");
                int choice = Convert.ToInt32(Console.ReadLine());
                switch (choice)
                {
                    case 1:
                        classObj.Push();
                        break;

                    case 2: classObj.Peek();
                        break;

                    case 3:  classObj.Pop();
                        break;
                    case 4: classObj.Display();
                        break;

                    case 5: System.Environment.Exit(1);
                        break;
                }
                Console.ReadKey();
            }
        }
    }

  
    class stackOperations
    {  
        string item;

      // using Generics in c# .NET
        Stack<string> stObj = new Stack<string>();
       
        public bool isEmpty()
        {
            if (stObj.Count == 0) return true;

            return false;
        }

        public void Push()
        { 
           Console.Write("\nEnter a Item\n");
           item = Console.ReadLine();
           stObj.Push(item);
           Console.WriteLine("\nItem pushed successfully!");
           
        }

        public void Pop()
        {
            if (isEmpty())
            {
                Console.WriteLine("Stack is empty!");
            }
            else
            {
                stObj.Pop();
                Console.WriteLine("Removed Successfuly"); 
            }
        }
        public void Peek()
        {
            if (isEmpty())
            {
              Console.WriteLine("Stack is empty!");  
            }
            else
            {
                Console.Write("Top Item is: {0}", stObj.Peek());  
            }
         }

        public void Display()
        {
            if (isEmpty())
            {
                Console.WriteLine("Stack is empty!");
            }
            else
            {
                Console.Write("\nItems in Stack are: \n");
                foreach (string item in stObj)
                {
                    Console.Write(item);
                    Console.Write("\n");
                }
            }
        }

    }
}


Output:-