Skip to main content

Iterator in csharp

Iterator


What is iterator?
Iterator is a method or function implementation which implements the iterative features for objects and its return type must be IEnumerable type.
We can implement iterators in C# read-only property also (only with get )
In each iteration this method or properties returns one element with the help of Yield return statement
What is yield
Yield is a keyword which is introduced in Csharp and VB.Net to implement iterator .yield is working like return statement in functions but it will call more than one time like loop.
yield gives enumeration properties implicitly for object(i.e means explicitly no need to implement IEnumerator) .
Yield was implemented in C-sharp and vb.net with different keyword
Yield return <expression>; in C#
We used yield return statement in iterator to return each element

Example

static void Main(string[] args)
        {
            foreach (var item in getno())
            {
                Console.WriteLine(item);
               
            }
        }
        public static IEnumerable<string> getno()
        {
            yield return "2";
            yield return "10";
            yield return "120";
            yield return "102";
        }





Can I use yield statement in exception try catch block?
By Microsoft definition
Yield can be placed in try-finally block, but cannot be in try-catch.
Yield have another key word break, it  is used to break  present iteration of iterator



Example
public class Employeelist
    {
        public System.Collections.Generic.IEnumerable<Employee> Nexemployee
        {
            get
            {
                yield return new Employee { Name = "elan", Experience = 12 };
                yield return new Employee { Name = "bond", Experience = 25 };
                yield return new Employee { Name = "larry ", Experience = 2, };
                yield return new Employee { Name = "amanda", Experience = 3 };
            }
        }
    }

    public class Employee
    {
        public String Name { get; set; }

        public int Experience { get; set; }
    }

    class Program
    {
      

        static void Main(string[] args)
        {
            var theemp = new Employeelist();
            foreach (Employee empitem in theemp.Nexemployee)
                Console.WriteLine(empitem.Name + " " + empitem.Experience.ToString());
        }
    }

Reference
http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx


Comments

Popular posts from this blog

FAQS on DOTNET

Hello to every one who are fallowing my blog, today i attend one call from one Technical Recruiter (name is not required i think ) he asked some couple of question...ok i answered ....mean while  he asked one question (in my life never i feel it is relevant  for developer) who will use oops development environment? ha.. ha.. expect answer and update  to me   So far we received many request for FAQs on CSHARP, ASP.NET AND SQLSERVER for fresher who are in finishing schools. We are actively working with these Technologies  to bring   KEY   Resources for   TECHIES.                                   you are interested in helping others  bring  TECHKEYS   to your Friends through Social Media, please Leave the Comment to us to improve our work and subscribe  for more information .   Q 1) levels of nesting in a subq...

SQLSERVER Functions- Coalesce()

SQL  Server  built-in functions Coalesce() It is A function Is Very Much Useful at Run time When We Have Multi Value Attribute in a Table. If U Consider below facts placed in a employee table With Id, Name, ph_no, Alt_no, Office no. id Name Ph_ no Alt_ no Office no 101 Albert 999999 456453 321333 102 khan null null 123455 103 victor 112121 null null 104 lovely null null 1897321 Above Employee table may have single value are three values if it have single value then it fill null  values with remaining attributes When We Retrieve The Number from employee table That Number Should Not be Null value To get not null value from employee table We Use Coalesce() Function It Returns First Encountered Not Null Value  from employee table select id , name , coalesce ( Ph_no , Alt_no , Office_no ) as contact...

OOPS-Constructors and distractor

Hi friends today we will discussed about constructors and distractor in csharp Constructors are used to memory allocation for real world entities which are created with the help of objects. When program or application is running, application required memory to save and manipulate data of that real world object/entities. Now the question is how much memory is required for that object? Frankly no one can decide how much memory is required for that application because of that all object oriented programming languages depends on heap memory. Heap memory is a logical memory in RAM (temporary memory) and size is logically infinity (physically it is limited).This memory has to be creating at run time when we are using object in our program/application. Now we have to know that what type of data members we have in object. In object we have two types of data members’ object instance  shared instance Object instance are allocated occupies object memory and...