title: Best OOP practise for a class returning list with class-objects?
body: <p>Maybe this is a subjective question.. but I've been trying to figure out what is the best way. 
  Some example code:</p>
  
  <pre><code>class Banana
  {
     private int _foo;
  
     public Banana()
     {
        _foo = 0;
     }
     public Banana(int whatever)
     {
        _foo = whatever;
     }
  
     public int Foo
     {
        ... get &amp; set ... // get and set function
     }
  
     public list&lt;Banana&gt; MyFunction()
     {
        list myList&lt;Banana&gt; = new list&lt;Banana&gt;();
  
        for (int i=0; i&lt;100; i++)
        {
           // This code?
           Banana banana = new Banana();
           banana.Foo = i;
           myList.Add(banana);
  
           // Or this?
           Foo = i;
           myList.Add(new Banana(Foo));
        }
  
        return myList;
     }
  }
  </code></pre>
  
  <p>Does it matter? I think the later one looks cleaner, but requires a constructor that takes a value. 
  Or is there a better way?
  Thanks in advance! This is C# Code btw :)</p>