Magazine

Custom Iterator

Luca Del Tongo

16/04/2007

In questo articolo esamineremo assieme le potenzialità degli iteratori in particolar modo di quelli custom che ben si adattano a specifiche esigenze applicative.

0%100%
per esprimere un voto è necessario registrarsi al sito

C#

XeDotNetIterator.zip (74,00 Kb)

 

Quando abbiamo a che fare con insiemi o collezioni di elementi siamo abituati ad iterare su ciascun elemento dell' insieme andando magari a compiere delle azioni guidate dalla nostra logica applicativa; ad esempio supponiamo di voler ricercare  all' interno delle community .NET italiane i nominativi dei membri appartenenti alla community di XE.NET che hanno pubblicato almeno un articolo con un numero di voti superiori ad una certa soglia; potremmo scrivere un codice del tipo: 

   1: List<string> bestPosters = new List<string>();
   2: bestPosters = EvaluteBestPosters(DotNetCommunity, "XE.NET");
   3: foreach (string name in bestPosters)
   4:   {
   5:     Console.WriteLine(name);
   6:   } 
   7:  
   8:  
   9: public List<string> EvaluteBestPosters(DotNetCommunity XeDotNetCommunity, string communityName)
  10:  {
  11:     List<Member> xeMembers = XeDotNetCommunity.GetListFor(communityName);
  12:     List<string> bestPosters = new List<string>();
  13:     foreach (Member member in xeMembers)
  14:     {
  15:         foreach (Article article in member.articles)
  16:             {
  17:             if (article.numVotes > 5)
  18:              {