Sorry, Cerebrus not Cerberus, Dislexya strikes....

On 2 ago, 07:42, Theraot <[email protected]> wrote:
> In the Enumerator example you are not disposing the Enumerator, it a
> good practice to do it, aslo foreach will do it for you (I think this
> wasn't so in old versiosn though). Also foreach will use
> IEnumerable<T> and IEnumerator<T> if they are available (As pointed by
> Cerberus), which will have the performance benefit of generics over
> late binding (an potential box un-box). And lastly, of course it's
> meant to be more readable.
>
> There an extra bonus, that is if you have already a foreach it will be
> easier to change it to run in parallel, by changing it to
> Parallel.ForEach.
>
> On 1 ago, 21:15, John Smith <[email protected]> wrote:
>
>
>
> > I am a beginner of C# .NET.  Found the following code snippet 
> > onhttp://msdn.microsoft.com/en-us/library/system.collections.dictionary...
>
> > What are some examples / use cases where the use of enumerator is
> > preferrable over foreach?
> > Thanks.
>
> >    // Uses the foreach statement which hides the complexity of the
> > enumerator.
> >    // NOTE: The foreach statement is the preferred way of enumerating
> > the contents of a collection.
> >    public static void PrintKeysAndValues1( ShortStringDictionary
> > myCol )  {
> >       foreach ( DictionaryEntry myDE in myCol )
> >          Console.WriteLine( "   {0,-5} : {1}", myDE.Key, myDE.Value );
> >       Console.WriteLine();
> >    }
>
> >    // Uses the enumerator.
> >    // NOTE: The foreach statement is the preferred way of enumerating
> > the contents of a collection.
> >    public static void PrintKeysAndValues2( ShortStringDictionary
> > myCol )  {
> >       DictionaryEntry myDE;
> >       System.Collections.IEnumerator myEnumerator =
> > myCol.GetEnumerator();
> >       while ( myEnumerator.MoveNext() )
> >          if ( myEnumerator.Current != null )  {
> >             myDE = (DictionaryEntry) myEnumerator.Current;
> >             Console.WriteLine( "   {0,-5} : {1}", myDE.Key,
> > myDE.Value );
> >          }
> >       Console.WriteLine();
> >    }

Reply via email to