Provide different IEnumerable implemetation for one class : IEnumerable : Data Structure C# Examples


C# Examples » Data Structure » IEnumerable »

 

Provide different IEnumerable implemetation for one class









    
using  System;
using  System.Collections.Generic;

public  class  Employee
{
        public  string  Name;
        public  string  Title;

        public  Employee(string  name,  string  title)
        {
                Name  =  name;
                Title  =  title;
        }

        public  override  string  ToString()
        {
                return  string.Format("{0}  ({1})",  Name,  Title);
        }
}

public  class  EmployeeList  
{
        private  List<Employee>  employeeList  =  new  List<Employee>();

        public  IEnumerator<Employee>  GetEnumerator()
        {
                foreach  (Employee  tm  in  employeeList)
                {
                        yield  return  tm;
                }
        }

        public  IEnumerable<Employee>  Reverse
        {
                get
                {
                        for  (int  c  =  employeeList.Count  -  1;  c  >=  0;  c--)
                        {
                                yield  return  employeeList[c];
                        }
                }
        }

        public  IEnumerable<Employee>  FirstTwo
        {
                get
                {
                        int  count  =  0;

                        foreach  (Employee  tm  in  employeeList)
                        {
                                if  (count  >=  2)
                                {
                                        yield  break;
                                }
                                else
                                {
                                        count++;
                                        yield  return  tm;
                                }
                        }
                }
        }

        public  void  AddEmployee(Employee  member)
        {
                employeeList.Add(member);
        }
}

public  class  MainClass
{
        public  static  void  Main()
        {
                EmployeeList  employeeList  =  new  EmployeeList();
                employeeList.AddEmployee(new  Employee("A",  "AA"));
                employeeList.AddEmployee(new  Employee("B",  "BB"));
                employeeList.AddEmployee(new  Employee("C",  "CC"));

                
                Console.WriteLine("Enumerate  using  default  iterator:");
                foreach  (Employee  member  in  employeeList)
                {
                        Console.WriteLine("    "  +  member.ToString());
                }

                Console.WriteLine("Enumerate  using  the  FirstTwo  iterator:");
                foreach  (Employee  member  in  employeeList.FirstTwo)
                {
                        Console.WriteLine("    "  +  member.ToString());
                }

                Console.WriteLine("Enumerate  using  the  Reverse  iterator:");
                foreach  (Employee  member  in  employeeList.Reverse)
                {
                        Console.WriteLine("    "  +  member.ToString());
                }
        }
}
    
   
  
   



Output

Enumerate using default iterator:
  A (AA)
  B (BB)
  C (CC)
Enumerate using the FirstTwo iterator:
  A (AA)
  B (BB)
Enumerate using the Reverse iterator:
  C (CC)
  B (BB)
  A (AA)


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Data Structure
» IEnumerable