What is the difference between IEnumerable and IEnumerator?( .NET Collection Interview questions)

You can also see this awesome youtube video http://www.youtube.com/watch?v=jd3yUjGc9M0 which demonstrates practically the difference between IEnumerable and IEnumerator.


Basically there are 3 differences.

  1. The way we iterate though elements of them
     For IEnumerable
    IEnumerable<int>MyCollection;
    Foreach(int t in MyCollection)
    {
         console.writeline(i);
    }
    For IEnumerator
    IEnumerator<int>MyCollection;
    while(MyCollection.MoveNext())
    {
    console.writeLIne(MyCollection.Current);
    }
  2. IEnumerable internally uses IEnumerator and thus IEnumerable has a method called GetEnumerator()
  3. IEnumerable won’t preserves state whereas IEnumerator does. IEnumerator knows which was the last element retrieved and whether further traversal is possible or not.
    Example:
    For IEnumerable
    IEnumerable<int>MyCollection; // Contain numbers from 0 to 100 sequentially
    foreach(int I in MyCollection)
    {
         //do something with i
        If(i>=50)
        {
                    AnotherFunction(MyCollection);
        }
    }
    AnotherFunction(IEnumerable<int>MyCollection)
    {
        foreach(int I in MyCollection)//Again start from zero
       {
             //do something with i
       }
    }
    For IEnumerator
    IEnumerator<int>MyCollection;
    while(MyCollection.MoveNext())
    {
          console.writeLine(MyCollection.Current);
          if(MyCollection.Current>=50)
         {
                       AnotherFunction(MyCollection);
         }
    }
    AnotherFunction(IEnumerator<int>MyCollection)
    {
          while(MyCollection.MoveNext()) //start from 51
          {
                  console.writeLine(MyCollection.Current);
          }
    }

We are thankful to questpond.com to provide this C# collection interview questions

Advertisements

About c# and .NET Interview questions

This blog is for developers who want to crack .NET and C# interviews. It has all tips and tricks needed to crack .NET interviews , C# interview , SQL Server interview , Java interview , WCF Interview , Silverlight interview , WPF interview , LINQ interview , Entity framework Interview. Do not forget to watch our Learn step by step video series. Learn MVC in 16 hours:- https://www.youtube.com/watch?v=Lp7nSImO5vk Learn AngularJS Step by Step:- https://www.youtube.com/watch?v=0kmdjqgO9IY Learn Design Pattern in 8 hours:- https://www.youtube.com/watch?v=YDobmucohqk Learn C# and .NET in 60 days:- https://www.youtube.com/watch?v=yh2SrzCkNQA Learn MSBI in 32 hours:- https://www.youtube.com/watch?v=mGPJx3ocFgg Learn SharePoint Step by Step in 8 hours:- https://youtu.be/C2fW76SwJNU
This entry was posted in Uncategorized and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s